繁体   English   中英

使utf8在文件中可读

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM