繁体   English   中英

为什么unicodecsv写不出来?

[英]Why won't unicodecsv write properly?

我有以下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字符文字的进一步阅读,您可以查看Python Unicode HOWTO文档

让我知道事情的后续

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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