[英]Make utf8 readable in a file
我有字典的字典,其中包含utf8编码密钥。 我正在使用json
模块将此字典转储到文件中。
在文件中键以utf8格式打印。 键实际上是孟加拉语的字母。
我希望在文件中写入实际的字母。 这该怎么做 ??
如果我打印这些键(其中一个是你'),控制台的实际字母(ং)会显示在我的文件中\ং
。 打印做什么来显示实际的字母?
你正在写JSON; JSON标准允许\\uxxxx
转义序列编码非ASCII字符。 Python json
模块默认使用它。
转储数据时,使用ensure_ascii=False
开关关闭该功能:
json.dump(obj, yourfileobject, ensure_ascii=False)
这意味着输出不再编码为UTF-8字节; 你需要使用codecs.open()
托管文件:
import json
import codecs
with codecs.open('/path/to/file', 'w', encoding='utf8') as output:
json.dump(obj, output, ensure_ascii=False)
现在你的unicode字符将作为UTF-8编码的字节写入文件。 当用另一个再次解码 UTF-8的程序打开文件时,您的代码点应该再次显示为相同的字符。
使用ensure_ascii
参数。
>>> import json
>>> print json.dumps(u'\u0982')
"\u0982"
>>> print json.dumps(u'\u0982', ensure_ascii=False)
"ং"
http://docs.python.org/2/library/json.html#json.dump
如果ensure_ascii为True(默认值),则输出中的所有非ASCII字符都使用\\ uXXXX序列进行转义,结果是仅包含ASCII字符的str实例。 如果ensure_ascii为False,则写入fp的一些块可能是unicode实例。 ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.