2017-10-01 96 views
1

写入文件。如果我运行下面的代码:蟒蛇 - 如何Unicode字符正确

text = 'سلام عزیزم! عزیزم سلام!' 
with open('temp.txt', 'w') as out_file: 
    print(text) 
    out_file.write(text) 
with open('temp.txt', 'r') as in_file: 
    print(in_file.read()) 

我得到这样的输出:

Traceback (most recent call last): 
سلام عزیزم! عزیزم سلام! 
    File "Z:/my files/projects/programing/python/courseAssist/gui.py", line 190, in <module> 
    out_file.write(text) 
    File "C:\Users\aran\Anaconda3\lib\encodings\cp1252.py", line 19, in encode 
    return codecs.charmap_encode(input,self.errors,encoding_table)[0] 
UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-3: character maps to <undefined> 

我怎样才能解决呢?

回答

3

指定编码encoding='utf-8'

text = 'سلام عزیزم! عزیزم سلام!' 
with open('temp.txt', 'w', encoding='utf-8') as out_file: 
    print(text) 
    out_file.write(text) 
with open('temp.txt', 'r', encoding='utf-8') as in_file: 
    print(in_file.read())