繁体   English   中英

Python 3.5:导出汉字

[英]Python 3.5: Exporting Chinese Characters

我已经尝试过几次将中文从列表变量导出到csv或txt文件中,发现存在问题。

具体来说,在读取数据并将其写入文件时,我已经将编码设置为utf-8或utf-16。 但是,我注意到当Window 7的基本语言为英语时,即使将语言设置更改为中文,也无法做到这一点。 当我在Windows 7下以中文为基本语言运行Python程序时,可以成功导出并完美显示中文。

我想知道为什么会发生这种情况,当在基于英文的Window下运行Python程序时,有什么解决方案可以帮助我在导出的文件中显示中文字符吗?

我刚刚发现您需要做两件事才能实现这一目标:

  1. 将窗口的显示语言更改为中文。
  2. 在编写过程中使用UTF-16编码。

这是美国Windows 10,运行名为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控制台将使用中文代码页而不是英语。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM