编码问题处理

编码问题处理

有时候获取的数据为bytes或者str

c = b'\u6279\u53d1\u548c\u96f6\u552e\u4e1a'  # bytes
print(c.decode('unicode_escape'))

a = "我在这里——————\u6279\u53d1\u548c\u96f6\u552e\u4e1a"  # str
a = a.encode('unicode_escape').decode('unicode_escape')
print(a)

b = "u'" + '在哪里=====\u6279\u53d1\u548c\u96f6\u552e\u4e1a' + "'"  # eval run。mast  str
print(eval(b))

 url编码

import urllib.parse
print(urllib.parse.quote("弹个车", ))   # 编码url格式
print(urllib.parse.unquote('my%20cvec%20app'))   # 解码url格式

 md5编码

import hashlib


def md5(str) -> str:
    '''
    :param str:
    :return: 返回一个加密md5
    '''
    m = hashlib.md5()
    m.update(str.encode("utf8"))
    return m.hexdigest()


print(md5('aaaaaaaa'))  # 3dbe00a167653a1aaee01d93e77e730e

base64编码

import base64

s_raw = "中国人a"
b_raw = s_raw.encode() # S.encode(encoding='utf-8', errors='strict') -> bytes

b64 = base64.b64encode(b_raw)
print("b64", b64)
s64 = b64.decode()
print("s64", s64)


b = base64.b64decode(s64)
print("b", b)
s = b.decode("utf-8")
print("s", s)

处理unicode编码

第一种
a=b'\u6279\u53d1\u548c\u96f6\u552e\u4e1a'
print(a.decode('unicode_escape'))

第二种(建议用)
a="u'"+'\\u6279\\u53d1\\u548c\\u96f6\\u552e\\u4e1a'+"'"
print(eval(a))

特殊编码

请尝试一下集中解码方式

gbk
ISO-8859-1
unicode_escape
ignore

 

posted @ 2019-10-18 11:10  洛丶丶丶  阅读(125)  评论(0编辑  收藏  举报