我正在尝试将基于非拉丁语言的单词写入CSV,并且无法以正确的形式写出单词。
foreign='а также'
with open('C:\\Users\\Lance\\Desktop\\Programs\\Database Builder\\Russian Test.csv', 'wb') as outfile:
outfile.write((foreign).encode('utf-8'))
此代码的输出为:
аÑ,акжÐμ
谢谢!
答案 0 :(得分:3)
它正确写入文件,但您可能正在使用使用Windows-1252
编码的编辑器或控制台显示文件。
来自美国Windows cmd.exe控制台的示例:
C:\>type "Russian Test.csv"
а также
C:\>chcp 1252
Active code page: 1252
C:\>type "Russian Test.csv"
а также
C:\>chcp 65001
Active code page: 65001
C:\>type "Russian Test.csv"
а также
注意:代码页65001在Windows上是UTF-8编码。
由于您似乎使用的是Python 3,因此您应该这样做并直接编写Unicode字符串:
foreign='а также'
with open('Russian Test.csv', 'w', encoding='utf8') as outfile:
outfile.write(foreign)
答案 1 :(得分:0)
首先安装unicodecsv
pip install unicodecsv
然后在脚本中导入
import unicodecsv as csv
为我工作。
答案 2 :(得分:-1)
首先,将数据写入csv文件取决于csv库,正确的脚本应该是:
import csv
with open('path/to/test.csv', 'wb') as f:
writer = csv.writer(f)
for line in <your_data>:
writer.writerow(line)
其次,由于csv库不支持python 2x中的unicode,你需要使用非常好地处理unicode的替代方法 - https://github.com/jdunck/python-unicodecsv,你只需要安装unicode版本的csv库,然后添加short在第一行导入表达式:
pip install unicodecsv
import unicodecsv as csv
...
请记住,通过在每个字符串前添加“u”将所有字符串转换为unicode。