什么时候遇到Python3编码问题?

时间:2020-04-13 08:04:21

标签: python-3.x unicode utf-8 python-unicode

我最近在Python3中对ASCII,Unicode,UTF-8,UTF-16等有了更深入的了解,但我一直在努力理解何时读/写文件时会遇到问题。

因此,如果我打开文件:

with open(myfile, 'a') as f:
    f.write(stuff)

其中的东西=“世界你好!” 我写文件没有问题。 如果我有类似的东西: non_latin ='娜',我仍然可以毫无问题地写入文件。

那么什么时候遇到编码方面的问题呢?什么时候使用encode()和decode()?

1 个答案:

答案 0 :(得分:1)

如果操作系统的默认编码不支持所写的字符,则会遇到问题。在您的情况下,默认值(从locale.getpreferredencoding(False)获得)可能是UTF-8。在Windows上,默认值为ANSI编码,例如cp1252,并且不支持中文。最好明确一些,例如使用open(myfile,'w',encoding='utf8')