【发布时间】:2017-03-13 19:24:12
【问题描述】:
我在 python 3 中使用 CSV 模块。我打开我的输出文件
open(file_name, 'w', encoding="ascii", errors="backslashreplace")
然后将 Unicode 字符串写入文件。 Unicode 字符被替换为十六进制表示,例如:
f\xfcr
不幸的是,我的解析器 (JavaScript) 不理解这种表示,并且想要类似
f\u00FCr
代替(4 位表示)。是否有一些聪明的方法来实现这一点,还是我必须重新打开文件,找到所有出现的地方并自己更改它们?
澄清:我不想使用 utf-8 编码,因为 JavaScript 解析器不理解它。我需要转义 Unicode 字符!
【问题讨论】:
-
我认为您正在寻找“unicode-escape”编码。
-
不会将
encoding="ascii"更改为encoding="utf-8"来解决问题吗? -
不,然后我得到“für”,它使我的 JS 解析器崩溃。我需要 \u 编码。 @PM2Ring CSV 模块如何工作?
-
不幸的是,“unicode-escape”编码为
\u007f到\u00ff范围内的字符生成\x编码。但是,您可以使用json.dumps创建 JavaScript 友好的字符串。它将接受单个字符串,以及字典、列表或元组。例如,import json; print(json.dumps('für'))打印"f\u00fcr"。 -
ensure_ascii=True是默认的,所以不需要指定
标签: javascript python csv unicode