写在最前面:
工作中遇到json字符串返回结果。然后用dumps格式化了一下,结果中文就乱码了,其实也不是乱码,被转为了utf-8而已。
"code": 1,
"msg": "\u670d\u52a1\u5b9e\u4f8b\u7f16\u7801Nginx6789\u5df2\u5b58\u5728"
尝试直接decode,不行,报错
AttributeError: 'str' object has no attribute 'decode'
其实python3中对文本和二进制做了比较清晰的区分。python3默认编码为unicode,由str类型进行表示。二进制数据使用byte类型表示,所以不会将str和byte混在一起。
str--->(encode)--->bytes,bytes--->(decode)--->str
那么此时输出的类型竟然不是bytes,是str,自然不能直接decode了。
尝试
encode('utf-8').decode('utf-8')
还是不行,给个解决办法吧
encode('utf-8').decode('unicode_escape')