我已经尝试了几次将中文从列表变量导出到csv或txt文件,但发现有问题。
具体地说,在读取数据并将其写入文件时,我已经将编码设置为utf-8或utf-16。然而,我注意到,当我的Windows7的基础语言是英语时,我无法做到这一点,即使我将语言设置更改为中文。当我在Windows7下以中文为基础语言运行Python程序时,我可以成功地导出并完美地显示中文。
我想知道为什么会发生这种情况,以及有什么解决方案可以帮助我在基于英文的Window下运行Python程序时在导出的文件中显示中文字符?
发布于 2016-08-24 12:33:06
我发现你需要做两件事来实现这一点:
发布于 2016-08-24 14:33:18
这是美国的Windows10,运行名为PythonWin的Python IDE。中文没有问题。

下面是在Windows控制台上运行的相同程序。注控制台的美国代码页默认值为cp437。cp65001是UTF-8。切换到支持中文文本的编码是关键。下面的文本是直接从控制台剪切并粘贴的。虽然字符显示正确粘贴到Stack Overflow,但控制台字体不支持中文并实际显示

。
C:\>chcp
Active code page: 437
C:\>x
Traceback (most recent call last):
File "C:\\x.py", line 5, in <module>
print(f.read())
File "C:\Python33\lib\encodings\cp437.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-5: character maps to <undefined>
C:\>chcp 65001
Active code page: 65001
C:\>type test.txt
我是美国人。
C:\>x
我是美国人。记事本也能正确显示输出文件:

要么使用支持UTF-8的IDE,要么将输出写入文件并使用记事本之类的工具读取。
让Windows控制台真正输出中文的方法有:安装win-unicode-console包,并将语言和区域设置、管理选项卡、系统区域设置更改为中文。对于后者,Windows将保持英文,但Windows控制台将使用中文代码页而不是英文代码页。
https://stackoverflow.com/questions/39113533
复制相似问题