在使用python 3的windows上使用json.dumps进行神秘的字符串编码
我们发现了在使用python 3的windows上使用json.dumps进行神秘的字符串编码,python,json,python-3.x,encoding,Python,Json,Python 3.x,Encoding,我们发现了json.dumps在Linux和Windows上的不同行为 jsonData = json.load(open('test.json')) print(jsonData) jsonStr = json.dumps(jsonData, ensure_ascii=False) print(jsonStr) Linux上的输出:(python3.3) Windows上的输出:(python3.4) 我们错过什么了吗test.json看起来像{'name':'Müller'} 如何在Wi
json.dumps
在Linux和Windows上的不同行为
jsonData = json.load(open('test.json'))
print(jsonData)
jsonStr = json.dumps(jsonData, ensure_ascii=False)
print(jsonStr)
Linux上的输出:(python3.3)
Windows上的输出:(python3.4)
我们错过什么了吗test.json
看起来像{'name':'Müller'}
如何在Windows上使用Python 3读取UTF-8文件?打开文件时不要依赖默认编码;您的JSON文件编码为UTF-8,但您使用单字节编解码器打开它(可能是CP1252,Windows拉丁语-1代码页): 从: 默认编码依赖于平台(无论
locale.getpreferredencoding()
返回什么)
强调我。打开文件时不要依赖默认编码;您的JSON文件编码为UTF-8,但您使用单字节编解码器打开它(可能是CP1252,Windows拉丁语-1代码页): 从: 默认编码依赖于平台(无论
locale.getpreferredencoding()
返回什么)
强调我。打开文件时不要依赖默认编码;您的JSON文件编码为UTF-8,但您使用单字节编解码器打开它(可能是CP1252,Windows拉丁语-1代码页): 从: 默认编码依赖于平台(无论
locale.getpreferredencoding()
返回什么)
强调我。打开文件时不要依赖默认编码;您的JSON文件编码为UTF-8,但您使用单字节编解码器打开它(可能是CP1252,Windows拉丁语-1代码页): 从: 默认编码依赖于平台(无论
locale.getpreferredencoding()
返回什么)
强调我的。你在Windows上写文件时使用了什么编码?我当然不能在Mac上用Python 3.4重现你的问题;生成的输出看起来像UTF-8数据被解释为拉丁语-1。您是否100%确定JSON数据不是从文件中读取的?对不起,我做了很多实验,但输入了错误的代码。@Nicolas我已将问题编辑为我理解您要问的问题。请确认。你用什么编码在Windows上写这个文件?我当然不能在Python 3.4的Mac上重现你的问题;生成的输出看起来像UTF-8数据被解释为拉丁语-1。您是否100%确定JSON数据不是从文件中读取的?对不起,我做了很多实验,但输入了错误的代码。@Nicolas我已将问题编辑为我理解您要问的问题。请确认。你用什么编码在Windows上写这个文件?我当然不能在Python 3.4的Mac上重现你的问题;生成的输出看起来像UTF-8数据被解释为拉丁语-1。您是否100%确定JSON数据不是从文件中读取的?对不起,我做了很多实验,但输入了错误的代码。@Nicolas我已将问题编辑为我理解您要问的问题。请确认。你用什么编码在Windows上写这个文件?我当然不能在Python 3.4的Mac上重现你的问题;生成的输出看起来像UTF-8数据被解释为拉丁语-1。您是否100%确定JSON数据不是从文件中读取的?对不起,我做了很多实验,但输入了错误的代码。@Nicolas我已将问题编辑为我理解您要问的问题。请确认。非常感谢!那是缺失的部分。非常感谢!那是缺失的部分。非常感谢!那是缺失的部分。非常感谢!那是缺失的部分。
{'name': 'Müller'}
{"name": "Müller"}
{'name': 'Müller'}
{"name": "M\xc3\xbcller"}
jsonData = json.load(open('test.json', encoding='utf8'))