python - 将非ascii字符写入文件

时间:2014-03-03 13:55:42

标签: utf-8 python-2.x

我在Linux上,想要将字符串(在utf-8中)写入txt文件。这是我的代码:

# -*- coding: UTF-8-*-

import os
import sys


def __init__(self, dirname, speaker, file, exportFile):

      text_file = open(exportFile, "a")

      text_file.write(speaker.encode("utf-8"))
      text_file.write(file.encode("utf-8"))

      text_file.close()      

当我在Windows上时,它可以工作。但是在Linux上,我收到了这个错误:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position in position 36: ordinal not in range(128)

我该如何解决这个问题?谢谢。

1 个答案:

答案 0 :(得分:7)

您可以尝试使用“编解码器”模块:

import codecs

with codecs.open('filename', 'w', encoding='utf-8') as out:  
    out.write(u'some text')