我来自这个old discussion,但是这个解决方案没有多大帮助,因为我的原始数据的编码方式不同:
我的原始数据已经用unicode编码,我需要输出为UTF-8
data={"content":u"\u4f60\u597d"}
当我试图转换为utf时:
json.dumps(data, indent=1, ensure_ascii=False).encode("utf8")
我得到的结果是
"content": "ä½ å¥½"
预期的输出应该是
"content": "你好"
我在没有ensure_ascii=false
的情况下进行了尝试,结果变成了无转义的"content": "\u4f60\u597d"
如何将先前转义的json转换为UTF-8?
您有UTF-8 JSON数据:
我的终端刚好碰巧被配置为处理UTF-8,因此将UTF-8字节打印到我的终端产生了所需的输出。
但是,如果您的终端设置为而不是,则显示“错误”字符的是您的终端:
注意我如何将数据解码成拉丁语1,故意误读UTF-8字节。
这不是一个Python问题;这是一个关于如何使用任何工具读取这些字节来处理UTF-8字节的问题。
在python2中,它工作;但是在python3中,
print
将输出如下:不要使用
encode('utf8')
:或者使用
sys.stdout.buffer.write
而不是print
:见Write UTF-8 to stdout, regardless of the console's encoding
相关问题 更多 >
编程相关推荐