我想写西里尔符号到csv文件,但我得到unicode编码错误。英语符号工作完美。我用的是Python 3.6.2。
UnicodeEncodeError:“ascii”编解码器无法对位置1-6中的字符进行编码:序号不在范围内(128)
import csv
with open("test.csv", 'w') as csvfile:
csvfile = csv.writer(csvfile, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL)
hello = 'привет, мир!'
csvfile.writerow([hello])
4条答案
按热度按时间kuarbcqp1#
打开文件时声明文件的编码。根据csv文档,
newline=''
也是必需的。ma8fv8wu2#
您只需要在将
hello
字符串写入文件(csv)之前对其进行编码。否则Python只要求你输入ascii
字符,如果是非ascii字符,你可以使用utf-8
编码:xqnpmsa83#
将此代码添加到文件中
qxsslcnc4#
对于使用Python 2的人,使用这个函数而不是普通的“open”函数:
这相当于Python 3中的以下内容: