我有以下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/