python - 打印列表时python中的Unicode错误

标签 python unicode

编辑: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/

相关文章:

python - IndexError : List index out of range. 应该在范围内

unicode - VBscript 的 SendKeys 是否支持 Unicode?

html - 手动执行小型大写以获得所需的外观而不是字体变体 : small-caps;

c++ - 在哪里可以找到 C++ ICU Unicode 的可能代码页参数值?

python - 我如何观看python源代码文件并在保存时重新启动?

python - OpenAI 检索文件内容

python - 无法分割看似编码的字符串

python - Travis CI 将 ü 编码为 ¼

python - 如何使用 geopandas 通过使用 basemap 在更详细的 map 上绘制纬度和经度?

python - python中列表的排序列表