我现在正在使用Python 3中的加密程序,但我遇到了一些ASCII编码问题。例如,如果我想将python中的文本文件(权限which(chr(1000)
)写入文本文件中,我会这样做:
a_file = open('chr_ord.txt', 'w')
a_file.write(chr(1000))
a_file.close()
我明白了:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
...
File "C:/Comp_Sci/Coding/printRAW.py", line 3, in <module>
a_file.write(chr(1000))
File "C:\WinPython-64bit-3.4.3.4\python-3.4.3.amd64\lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u03e8' in position 0: character maps to <undefined>
如果我尝试:
a_file = open('chr_ord.txt', 'w')
a_file.write(ascii(chr(1000)))
a_file.close()
Python不会崩溃,但文本文件包含'\u03e8'
而不是所需的Ϩ
有什么方法可以解决这个问题吗?
答案 0 :(得分:3)
Python 3的方法是在打开文件时使用encoding
参数。例如。将文件编码为UTF-8
a_file = open('chr_ord.txt', 'w', encoding='utf-8')
默认值是您的系统ANSI代码页,其中不包含Ϩ
字符。