编辑:http://pastebin.com/W4iG3tjS - 文件
我有一个用 utf8 编码的文本文件,其中包含一些西里尔文字。要加载它,我使用以下代码:
import codecs
fopen = codecs.open('thefile', 'r', encoding='utf8')
fread = fopen.read()
fread
将文件转储到屏幕上所有 unicodish(转义序列)。 print fread
以可读形式显示它(我猜是 ASCII)。
然后我尝试将其拆分并写入一个没有编码的空文件:
a = fread.split()
for l in a:
print>>dasFile, l
但我收到以下错误消息:UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-13: ordinal not in range(128)
有没有办法将 fread.split()
转储到文件中?我怎样才能摆脱这个错误?
最佳答案
由于您已通过 codecs.open()
打开并读取文件,因此它已被解码为 Unicode。所以要输出它,您需要再次对其进行编码,大概是回到 UTF-8。
for l in a:
dasFile.write(l.encode('utf-8'))
关于python - 打印列表时python中的Unicode错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10977943/