Python中文全攻略的具體方案介紹
在強大的計算機語言應(yīng)用的過程中,如果你希望你能把Python中文全攻略這一操作技能更好的了解的話,你可以觀看我們的文章,我們的文章就是對其相關(guān)內(nèi)容的介紹,以下就是相關(guān)內(nèi)容的介紹。
在Python中使用中文
它有兩種默認的字符串:str和unicode。用它一定要注意區(qū)分“Unicode字符串”和“unicode對象”的區(qū)別。后面所有的“unicode字符串”指的都是python里的“unicode對象”。
事實上在Python并沒有“Unicode字符串”這樣的東西,只有“unicode”對象。一個傳統(tǒng)意義上的unicode字符串完全可以用str對象表示。只是這時候它僅僅是一個字節(jié)流,除非解碼為unicode對象,沒有任何實際的意義。
我們用“哈哈”在多個平臺上測試,其中“哈”對應(yīng)的不同編碼是:
- 1. UNICODE (UTF8-16), C854;
- 2. UTF-8, E59388;
- 3. GBK, B9FE。
Windows控制臺
下面是在windows控制臺的運行結(jié)果:
可以看出在控制臺,中文字符的編碼是GBK而不是UTF-16。將字符串s(GBK編碼)使用decode進行解碼后,可以得到同等的unicode對象。
注意:可以在控制臺打印ss并不代表它可以直接被序列化,比如:
向文件直接輸出ss會拋出同樣的異常。在處理unicode中文字符串的時候,必須首先對它調(diào)用encode函數(shù),轉(zhuǎn)換成其它編碼輸出。這一點對各個環(huán)境都一樣。
總結(jié):在Python中,“str”對象就是一個字節(jié)數(shù)組,至于里面的內(nèi)容是不是一個合法的字符串,以及這個字符串采用什么編碼(gbk, utf-8, unicode)都不重要。
這些內(nèi)容需要用戶自己記錄和判斷。這些的限制也同樣適用于“unicode”對象。要記住“unicode”對象中的內(nèi)容可絕對不一定就是合法的unicode字符串,我們很快就會看到這種情況。
總結(jié):在windows的控制臺上,支持gbk編碼的str對象和unicode編碼的unicode對象。#t#
Windows IDLE(在Shell上運行)
在windows下的IDLE中,運行效果和windows控制臺不完全一致:
可以看出,對于不使用“u”作標(biāo)識的字符串,IDLE把其中的中文字符進行GBK編碼。但是對于使用“u”的unicode字符串,IDLE居然一樣是用了GBK編碼,不同的是,這時候每一個字符都是unicode(對象)字符!!此時len(ss) = 4。這樣產(chǎn)生了一個神奇的問題,現(xiàn)在的ss無法在IDLE中正常顯示。而且我也沒有辦法把ss轉(zhuǎn)換成正常的編碼!
比如采用下面的方法:
這有可能是因為IDLE本地化做得不夠好,對中文的支持有問題。建議在IDLE的SHELL中,不要使用u“中文”這種方式,因為這樣得到的并不是你想要的東西。
這同時說明IDLE的Shell支持兩種格式的中文字符串:GBK編碼的“str”對象,和UNICODE編碼的unicode對象。
以上內(nèi)容就是我們對Python中文全攻略 的部分介紹。