我有以下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,表示"こんにちは世界&#34 ;;相反,它写出了胡言乱语。使用十六进制编辑器检查最终产品显示出相似之处:EX YY ZZ转换为C3 AX C2 YY C2 ZZ,但我无法理解。
我在Windows 10上运行Python 2.7.11,而sys.stdout.encoding说" cp437"在控制台中。
答案 0 :(得分:3)
您可以尝试在源文件的顶部设置这样的源代码编码:
# 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文档
让我知道它是怎么回事