python返回字符串中有些是乱码
如下列情况:
第一种情况:
s = "'D:\\\xc9\xfa\xcc\xac\xc8\xbaAPP\\\xc4\xdc\xc1\xa6\xd6\xd0\xcc\xa8\\G4-G5 \xbf\xaa\xb7\xa2\xb2\xe2\xca\xd4\\04 \xb2\xe2\xca\xd4\xd3\xc3\xc0\xfd\\06\xd7\xd4\xb6\xaf\xbb\xaf\xb2\xe2\xca\xd4\xd3\xc3\xc0\xfd\\Test_Case\\APP\\\xb8\xf6\xc8\xcb\xd6\xd0\xd0\xc4\\\xd3\xc3\xbb\xa7\xd6\xd0\xd0\xc4.txt"
此处读取的是中文路径下文件,使用:
print s.decode(encoding="gb2312", errors="strict")
因为字符串编码是GBK格式,也可写成decode("GBK",error="strict")
截图是decode方法源码解释,我们encoding方式是gb2312编码的
第二种情况:
s="\u53ea\u80fd\u63d0\u4ea4\u5f85\u5ba1\u6838,\u53d6\u6d88\u5ba1\u6838,\u5ba1\u6838\u5931\u8d25\u7684\u6279\u552e\u8ba2\u5355"
此处是接口返回的utf-8编码无法解析,也是使用decode方式解码,传入参数不一样
print s.decode("unicode_escape")
unicode_escape值是对内存编码值进行存储,读取时再反向转回来的过程