Python 打印到控制台的JSON显示错误的编码
我试图从一些JSON文件中读取西里尔字母,然后在Windows上使用Python 3.4.3将其输出到控制台。正常印刷(“俄罗斯smthббббххы”)按预期工作 但当我打印JSON内容时,它似乎是在Windows-1251中打印的——“СЂССѓСССССССССЃѓѓССССѓССССЃѓѓѓєєєєССè232 我尝试将其重新编码为Win-1251,并将console设置为Win-1251,但仍然没有成功 我的JSON(以UTF-8编码): 我要加载字典的代码: 我尝试以两种方式输出它(两种方式都显示相同的胡言乱语):Python 打印到控制台的JSON显示错误的编码,python,json,python-3.x,utf-8,cyrillic,Python,Json,Python 3.x,Utf 8,Cyrillic,我试图从一些JSON文件中读取西里尔字母,然后在Windows上使用Python 3.4.3将其输出到控制台。正常印刷(“俄罗斯smthббббххы”)按预期工作 但当我打印JSON内容时,它似乎是在Windows-1251中打印的——“СЂССѓСССССССССЃѓѓССССѓССССЃѓѓѓєєєєССè232 我尝试将其重新编码为Win-1251,并将console设置为Win-1251,但仍然没有成功 我的JSON(以UTF-8编码): 我要加载字典的代码: 我尝试以两种方式输出它(
一个有趣的附加组件:我已经将整个俄语字母表添加到我的JSON文件中,它似乎被“СС”字母卡住了。(加载字典时出错:“charmap”编解码器无法解码位置X:字符映射到的字节0x81)。如果我删除这一个字母,它不会显示任何异常,但上面的问题仍然存在。“但是当我打印JSON内容时…” 如果使用
type
命令打印,则会在CHCP 1251
范围下获得
尝试在范围下键入
接下来,使用open(DictionaryName,encoding=“utf8”)
示例(39755662.json
与UTF-8
编码一起保存):
“但当我打印JSON内容时…”
如果使用type
命令打印,则会在CHCP 1251
范围下获得
尝试在范围下键入
接下来,使用open(DictionaryName,encoding=“utf8”)
示例(39755662.json
与UTF-8
编码一起保存):
我们看到你是如何加载JSON的,但是你在哪里以及如何输出它?添加了这个信息,抱歉@打开(DictionaryName,encoding=“utf8”)
helps@nauer不,没有。在问问题之前我试过了。当你以二进制模式打开它时会发生什么将open(DictionaryName,“rb”)作为f:
我们可以看到您是如何加载JSON的,但是您在哪里以及如何输出它?添加了此信息,抱歉@打开(DictionaryName,encoding=“utf8”)
helps@nauer不,没有。在问问题之前我试过了。当你以二进制模式打开它时会发生什么<代码>打开(DictionaryName,“rb”)作为f:
{
"русские буквы": "что-то ещё на русском",
"english letters": "и что-то на великом"
}
def load_dictionary():
global Dictionary, isFatal
try:
with open(DictionaryName) as f:
Dictionary = json.load(f)
except Exception as e:
logging.critical('Error loading dictionary: ' + str(e))
isFatal = True
return
logging.info('Dictionary was loaded successfully')
print(helper.Dictionary.get('rly'))
print(helper.Dictionary)
==> chcp 866
Active code page: 866
==> type 39755662.json
{
"╤А╤Г╤Б╤Б╨║╨╕╨╡ ╨▒╤Г╨║╨▓╤Л": "╤З╤В╨╛-╤В╨╛ ╨╡╤Й╤С ╨╜╨░ ╤А╤Г╤Б╤Б╨║╨╛╨╝",
"rly": "╤А╤Г╤Б╤Б╨║╨╕╨╣"
}
==> chcp 1251
Active code page: 1251
==> type 39755662.json
{
"русские буквы": "что-то ещё на русском",
"rly": "СЂСѓСЃСЃРєРёР№"
}
==> chcp 65001
Active code page: 65001
==> type 39755662.json
{
"русские буквы": "что-то ещё на русском",
"rly": "русский"
}
==>