【发布时间】:2019-06-12 14:00:27
【问题描述】:
有一个 JSON 文件,其中包含卡纳达语字母。 信息.json
{
"name":"",
"url":"",
"desc":"ಹಾಡುಗಳನ್ನು ಈಗ ಆನಂದಿಸಿ."
}
如果我尝试在没有编码的情况下读取这个文件
with open('info.json', 'r')
我得到错误:
'charmap' codec can't decode byte 0x8d in position 38: character maps to <undefined>
如果我使用像with open('info.json', 'r', encoding='utf-8')这样的UTF-8
只有卡纳达语内容被转换为转义 Unicode 实体,如 \u0c85\u0ca4\u0ccd\u0ca4\u0cb2\u0cbf\u0ca4\u0ccd\u0ca4
由于这是一个字符串,我在将其转换回实际的卡纳达语字符时发现了问题。
我尝试使用各种类型的解码,例如...
str(infoObj['desc'], "utf-8"),
infoObj['desc'].decode('unicode-escape')
做了 5 个小时的大量研究,但没有任何成功。
寻求有关如何找回卡纳达语文本的帮助。
提前致谢。
【问题讨论】:
-
您能否提供完整的python代码,帮助SO成员尝试解决您的问题?
-
with open('info.json', 'r', encoding='utf-8') as file: for line in file: print(line)之类的简单命令运行良好,并在控制台中打印 kannada。 -
这也很好用
import json from pprint import pprint with open('info.json', 'r', encoding='utf-8') as file: data = json.load(file) pprint(data)
标签: python unicode decode unicode-escapes kannada