编码问题处理
编码问题处理
有时候获取的数据为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