读取 UTF-8 编码的 JSON 文件时无法在 Python 中显示中文字符,有什么解决方案吗?[复制]

Can't display Chinese characters in Python when reading a JSON file with UTF-8 encoding, any solutions? [duplicate]

提问人:Cody Gao 提问时间:5/26/2023 最后编辑:Ajeet VermaCody Gao 更新时间:5/26/2023 访问量:183

问:

我正在处理一个包含中文单词的json文件。我尝试用 Python 在我的机器中读取它,但汉字无法正确显示。下面是 json 文件(a.json):

{
  "squadName": "哈囉",
  "homeTown": "Metro City",
  "formed": 2016,
  "secretBase": "Super tower",
  "active": true
}

这是我的代码:

import json

storage = []
with open('a.json', 'r', encoding='utf-8') as f:
    data = json.load(f)
    print(data)

输出如下:

{'squadName': '���o', 'homeTown': 'Metro City', 'formed': 2016, 'secretBase': 'Super tower', 'active': True}

除汉字外,一切正常 有谁知道如何解决它?

我已经搜索了很多解决方案,并且还将“encoding”参数设置为 or ,但它仍然不起作用。utf-8utf-8-sig

python json utf-8

评论

1赞 topsail 5/26/2023
您是否确认了 json 文件的编码?也许它不是 utf-8。
0赞 rr_goyal 5/26/2023
你用的是什么python版本?
1赞 tripleee 5/26/2023
如果这是一个输入编码问题,我们需要从输入 JSON 中查看实际编码的字节。但是,您得到的关于输出编码问题的答案似乎是对您提供的信息的更好推测(并且是一个非常常见的常见问题解答;最简单的答案是“不要使用 Windows”,但由于这对许多初学者来说是不可接受的,因此有很多解决方法)。另请参阅 meta.stackoverflow.com/questions/379403/...

答:

1赞 Façade 5/26/2023 #1

您的代码运行良好。但是,您需要确保输出处理程序能够正确显示这些字符。

0赞 Ajeet Verma 5/26/2023 #2

是的,您不需要修复任何东西。你的代码很好。

如下图所示:

(这是 Pycharm IDE)

(CMD终端)enter image description here

评论

0赞 Cody Gao 5/26/2023
所以你的意思是问题出在我的终端(机器)的显示上?
0赞 Ajeet Verma 5/26/2023
也许,即使我从 CMD 终端运行它,它也会按预期显示数据。
0赞 tripleee 5/26/2023
如果问题不可重现,请不要发布答案。只需投票关闭“错别字或不可复制”。