看一些youtube教程。使用ver 3.8.2的人,我安装了3.10.4。他像这样打字,效果很好:
r = open('file.txt', 'a')
r.write('something' + '\n')
r.write('что-то')
r.close()如果我也这么做,我会得到UnicodeEncodeError
Traceback (most recent call last): File "C:\Users\small\Desktop\test.py", line 3, in <module> r.write('что-то') File "C:\Python310\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-2: character maps to <undefined> 并被迫为打开的文件声明如下编码:
r = open('file.txt', 'a', encoding='utf-8')
r.write('something' + '\n')
r.write('что-то')
r.close()主要对以下两个问题感兴趣:
发布于 2022-04-05 01:02:06
open函数的默认编码是平台相关
在Unix上,它是
LC_CTYPE语言环境的编码。它可以用locale.setlocale(locale.LC_CTYPE, new_locale)设置。 在Windows上,它是ANSI代码页(例如:cp1252)。
所以是的,这是因为操作系统的不同。经常指定encoding编写独立于平台的代码是一个很好的习惯。
您还可以通过启用Python UTF-8 mode使其永久化。
https://stackoverflow.com/questions/71745157
复制相似问题