我正在尝试将中文字符从名为 result
的 SQL 输出写入文本文件。
结果
如下所示:
[('你好吗', 345re4, '2015-07-20'), ('我很好',45dde2, '2015-07-20').....]
这是我的代码:
#result is a list of tuples
file = open("my.txt", "w")
for row in result:
print >> file, row[0].encode('utf-8')
file.close()
row[0]
包含如下中文文本:你好吗
我也尝试过:
打印>>文件,str(row[0]).encode('utf-8')
和
打印>>文件,'u'+str(row[0]).encode('utf-8')
但两者都给出了相同的错误。
UnicodeEncodeError:“ascii”编解码器无法对位置 0-10 中的字符进行编码:序数不在范围 (128)
最佳答案
找到了一个简单的解决方案,而不是通过从一开始就使用编解码器将文件格式化为“utf-8”来进行编码和解码。
import codecs
file = codecs.open("my.txt", "w", "utf-8")
关于python - Unicode编码错误: 'ascii' codec can't encode characters in position 0-10: ordinal not in range(128) chinese characters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31550430/