python - 为什么 unicodecsv 不能正常写入?

标签 python python-2.7 unicode

我有以下Python代码:

import unicodecsv as csv
import sys

with open("unicode_test.csv", "w+b") as csv_file:
    writer = csv.writer(csv_file, encoding="utf-8")
    writer.writerow([u'\xe3\x81\x93\xe3\x82\x93\xe3\x81\xab\xe3\x81\xa1\xe3\x81\xaf\xe4\xb8\x96\xe7\x95\x8c'])

这应该创建一个 CSV,其中显示“こんにちは世界”;相反,它写的是乱码。使用十六进制编辑器检查最终产品显示出相似之处:EX YY ZZ 转换为 C3 AX C2 YY C2 ZZ,尽管我无法理解如何转换。

我在 Windows 10 上运行 Python 2.7.11,sys.stdout.encoding 在控制台中显示“cp437”。

最佳答案

您可以尝试在源文件顶部设置这样的源代码编码:

# coding=utf-8

因此,您的整个解决方案应如下所示:

# coding=utf-8
import unicodecsv as csv
import sys

with open("unicode_test.csv", "w+b") as csv_file:
    writer = csv.writer(csv_file, encoding="utf-8")
    writer.writerow([u'こんにちは世界'])

要进一步阅读有关使用 unicode 字 rune 字的信息,您可以查看 Python Unicode HOWTO文档

让我知道进展如何

关于python - 为什么 unicodecsv 不能正常写入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44770217/

相关文章:

java - 无法从 GUI 正确检索 Unicode 数据

Ruby Unicode 编码

python - 使用python提交表单

python - 解析 SPARQL 查询

python - 如何使用 sshfs 和 Python 子进程挂载和卸载文件夹?

PythonAnywhere 试图上传我的网站

Python 结构将 root 密码作为命令行参数传递不起作用

python - 嵌套的相对导入似乎不起作用

python - md5 id批量导入数据到elasticsearch时出现UnicodeDecodeError

python - Matplotlib 颜色条显示数字