您好,登錄后才能下訂單哦!
這篇文章主要講解了“怎么在Python中使用中文”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“怎么在Python中使用中文”吧!
在Python中使用中文
它有兩種默認(rèn)的字符串:str和unicode。用它一定要注意區(qū)分“Unicode字符串”和“unicode對(duì)象”的區(qū)別。后面所有的“unicode字符串”指的都是python里的“unicode對(duì)象”。
事實(shí)上在Python并沒有“Unicode字符串”這樣的東西,只有“unicode”對(duì)象。一個(gè)傳統(tǒng)意義上的unicode字符串完全可以用str對(duì)象表示。只是這時(shí)候它僅僅是一個(gè)字節(jié)流,除非解碼為unicode對(duì)象,沒有任何實(shí)際的意義。
我們用“哈哈”在多個(gè)平臺(tái)上測(cè)試,其中“哈”對(duì)應(yīng)的不同編碼是:
1. UNICODE (UTF8-16), C854; 2. UTF-8, E59388; 3. GBK, B9FE。
Windows控制臺(tái)
下面是在windows控制臺(tái)的運(yùn)行結(jié)果:
可以看出在控制臺(tái),中文字符的編碼是GBK而不是UTF-16。將字符串s(GBK編碼)使用decode進(jìn)行解碼后,可以得到同等的unicode對(duì)象。
注意:可以在控制臺(tái)打印ss并不代表它可以直接被序列化,比如:
向文件直接輸出ss會(huì)拋出同樣的異常。在處理unicode中文字符串的時(shí)候,必須首先對(duì)它調(diào)用encode函數(shù),轉(zhuǎn)換成其它編碼輸出。這一點(diǎn)對(duì)各個(gè)環(huán)境都一樣。
總結(jié):在Python中,“str”對(duì)象就是一個(gè)字節(jié)數(shù)組,至于里面的內(nèi)容是不是一個(gè)合法的字符串,以及這個(gè)字符串采用什么編碼(gbk, utf-8, unicode)都不重要。
這些內(nèi)容需要用戶自己記錄和判斷。這些的限制也同樣適用于“unicode”對(duì)象。要記住“unicode”對(duì)象中的內(nèi)容可絕對(duì)不一定就是合法的unicode字符串,我們很快就會(huì)看到這種情況。
總結(jié):在windows的控制臺(tái)上,支持gbk編碼的str對(duì)象和unicode編碼的unicode對(duì)象。
淺析Python中的Python全局變量
有關(guān)Python中文問題進(jìn)行詳細(xì)說明
Python中文字符具體應(yīng)用技巧分享
Python中文對(duì)相關(guān)文件的改編和處理
Python中文如何進(jìn)行語言轉(zhuǎn)換
Windows IDLE(在Shell上運(yùn)行)
在windows下的IDLE中,運(yùn)行效果和windows控制臺(tái)不完全一致:
可以看出,對(duì)于不使用“u”作標(biāo)識(shí)的字符串,IDLE把其中的中文字符進(jìn)行GBK編碼。但是對(duì)于使用“u”的unicode字符串,IDLE居然一樣是用了GBK編碼,不同的是,這時(shí)候每一個(gè)字符都是unicode(對(duì)象)字符?。〈藭r(shí)len(ss) = 4。這樣產(chǎn)生了一個(gè)神奇的問題,現(xiàn)在的ss無法在IDLE中正常顯示。而且我也沒有辦法把ss轉(zhuǎn)換成正常的編碼!
比如采用下面的方法:
這有可能是因?yàn)镮DLE本地化做得不夠好,對(duì)中文的支持有問題。建議在IDLE的SHELL中,不要使用u“中文”這種方式,因?yàn)檫@樣得到的并不是你想要的東西。
這同時(shí)說明IDLE的Shell支持兩種格式的中文字符串:GBK編碼的“str”對(duì)象,和UNICODE編碼的unicode對(duì)象。
感謝各位的閱讀,以上就是“怎么在Python中使用中文”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)怎么在Python中使用中文這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。