国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python2.x中文亂碼問題解決方法

2020-02-23 01:29:42
字體:
來源:轉載
供稿:網友

Python中亂碼問題是一個很頭痛的問題。
在Python3中,對中文進行了全面的支持,但在Python2.x中需要進行相關的設置才能使用中文。否則會出現亂碼

【問題原因】

在Python2.x中主要是字符編碼的問題,處理不好的話,會導致亂碼。Python默認采取的ASCII編碼,字母、標點和其他字符只使用一個字節來表示,但對于中文字符來說,一個字節滿足不了需求。
代碼如下:
>>> import sys 
>>> sys.getdefaultencoding() 
'ascii' 

為了能在計算機中表示所有的中文字符,中文編碼采用兩個字節表示。如果中文編碼和ASCII混合使用的話,就會導致解碼錯誤,從而才生亂碼。而CMD下默認的編碼方式為:GBK,所以就造成了上面的亂碼!

采用兩個字節的中文編碼標準有:GB2312、GBK、BIG5等。

【處理辦法】

為了將各種不同的語言包含在統一的字符集中,滿足國際間的信息交流,國際上制訂了UNICODE字符集,包含了世界上所有語言字符,這些字符具有唯一的編碼,通過使用UNICODE字符集可以滿足跨語言的文字處理,避免亂碼的產生。
i)  交互式命令中:一般不會出現亂碼,無需做處理

ii) py腳本文件中:跨字符集必須做設置,否則亂碼。
首先在開頭一句添加:
代碼如下:
# coding = utf-8 
# 或 
# coding = UTF-8 
# 或 
# -*- coding: utf-8 -*- 

其次需將文件保存為UTF-8的格式!

上面那一句僅僅是告訴Python編譯器:腳本中包含了非ASCII字符,并未進行轉換。
如果要將字符編碼從默認的ASCII改為UTF-8,需要在保存的時候選擇保存為UTF-8格式。

如果是用NODEPAD打開,【另存為】-->UTF-8即可

如果是用IDLE打開,【Options】-> 【Configure IDLE】->【General】

上面的設置,可以保證IDLE,運行F5,能正常輸出中文。

【編碼解碼】

在開頭添加了# -*- coding: utf-8 -*-并將文件保存為UTF-8格式,仍然不能保證能輸出正常輸出中文,
不同的編輯器,如VIM,IDLE,Eclipse使用的輸出編碼都是不一致的。
所以,在一個地方能正常輸出中文,在另外一個地方就未必。所以還必須做編碼解碼設置!

encode:編碼
decode:解碼

必須保證編碼、解碼的對象是同一個。比如說UTF-8方式編碼, 必須再用UTF-8進行解碼即可。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 诸城市| 台山市| 镇康县| 耒阳市| 且末县| 琼中| 镇江市| 永昌县| 昭苏县| 阳原县| 西安市| 武威市| 施秉县| 静乐县| 若尔盖县| 康乐县| 桐柏县| 九龙县| 彭州市| 乌拉特中旗| 印江| 贵溪市| 天峨县| 饶平县| 三门县| 开封县| 神农架林区| 浮山县| 六盘水市| 苍溪县| 临海市| 东光县| 承德县| 保靖县| 苍溪县| 盐池县| 山丹县| 报价| 岚皋县| 长垣县| 栾城县|