import csv
with open("demo.csv","w",encoding= "utf-8") as f:
w = csv.writer(f)
w.writerow(u'\u22ef')
结果写进 csv 的是乱码,采用 gb18030 编码写进 csv 的是"??"
,如果不添加 encoding 就会报 gbk 错误
如果单纯只是print(u'\u22ef')
,结果是“……”
,请问如何才能将省略号写入 csv。
谢谢!
1
wevsty 2018-12-20 00:30:31 +08:00 1
代码里面 encoding 不是 utf-8 么?和 gb18030 的关系是?
你用个能用 UTF-8 编码打开文件的文本编辑器应该就正常了。 |
2
guog 2018-12-20 01:03:27 +08:00 via Android 1
换 Python3 试试?
|
4
Sylv 2018-12-20 02:38:47 +08:00 3
UTF-8 编码的 csv 文件需要加 BOM 头,Excel 才能正确识别:
import csv import codecs with open("demo.csv","wb") as f: -> f.write(codecs.BOM_UTF8) with open("demo.csv","a",encoding="utf-8") as f: -> w = csv.writer(f) -> w.writerow(u'\u22ef') |
5
Trim21 2018-12-20 05:08:03 +08:00 2
如果乱码是指用 excel 打开看到话应该是楼上说的原因.
或者用 excel 的导入功能, 可以正常打开 utf8 格式的 csv |