[英]Python 3.5: Exporting Chinese Characters
我已經嘗試過幾次將中文從列表變量導出到csv或txt文件中,發現存在問題。
具體來說,在讀取數據並將其寫入文件時,我已經將編碼設置為utf-8或utf-16。 但是,我注意到當Window 7的基本語言為英語時,即使將語言設置更改為中文,也無法做到這一點。 當我在Windows 7下以中文為基本語言運行Python程序時,可以成功導出並完美顯示中文。
我想知道為什么會發生這種情況,當在基於英文的Window下運行Python程序時,有什么解決方案可以幫助我在導出的文件中顯示中文字符嗎?
我剛剛發現您需要做兩件事才能實現這一目標:
這是美國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.