您在Python3中什么时候遇到编码问题



我最近在Python3中深入了解了ASCII、Unicode、UTF-8、UTF-16等,但我很难理解在读/写文件时什么时候会遇到问题。

所以如果我打开一个文件:

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

where stuff="你好,世界!"我在写入文件时没有问题。如果我有类似的东西:non_latin='娜',我仍然可以毫无问题地写入文件。

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

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

最新更新