您好,登錄后才能下訂單哦!
1、字符和字節(jié)
一個(gè)字符不等價(jià)于一個(gè)字節(jié),字符是人類能夠識(shí)別的符號(hào),可以有多種表示方法,不同的表示方法會(huì)使用不同的字節(jié)數(shù)。比如字母A-Z都可以用ASCII碼表示(占用一個(gè)字節(jié)),也可以用Unicode表示(占兩個(gè)字節(jié)),還可以用UTF-8表示(占用一個(gè)字節(jié))。
字符編碼的作用是將人類可識(shí)別的字符轉(zhuǎn)換為機(jī)器可識(shí)別的字節(jié)碼以及反向過(guò)程。Unicode是真正的字符串,而用ASCII、UTF-8、GBK等字符編碼表示的是字節(jié)串。
2、編碼和解碼
以Unicode為例,編碼(encode)是將Unicode字符串(中的代碼點(diǎn))轉(zhuǎn)換特定字符編碼對(duì)應(yīng)的字節(jié)串的過(guò)程和規(guī)則;解碼(decode)是將特定字符編碼的字節(jié)串轉(zhuǎn)換為對(duì)應(yīng)的Unicode字符串(中的代碼點(diǎn))的過(guò)程和規(guī)則。
無(wú)論是編碼還是解碼,都需要一個(gè)重要因素,就是特定的字符編碼。因?yàn)橐粋€(gè)字符用不同的字符編碼進(jìn)行編碼后的字節(jié)值以及字節(jié)個(gè)數(shù)大部分情況下是不同的,反之亦然。
3、Python編碼轉(zhuǎn)換
Python編碼類型默認(rèn)是UTF-8,Python2的默認(rèn)編碼是ASCII,不能識(shí)別中文字符,需要顯式指定字符編碼;Python3的默認(rèn)編碼為Unicode,可以識(shí)別中文字符。
在Python中不同編碼的轉(zhuǎn)換都要經(jīng)過(guò)Unicode,不論是UTF-8或者是GBK,整個(gè)過(guò)程都是先通過(guò)編碼decode轉(zhuǎn)換為Unicode告訴Unicode當(dāng)前的編碼格式是什么、然后再通過(guò)解碼encode轉(zhuǎn)換為自己想要實(shí)現(xiàn)的編碼格式或類型。
4、常見(jiàn)編碼錯(cuò)誤原因
1)Python解釋器的默認(rèn)編碼
2)Python源文件文件編碼
3)Terminal使用的編碼
4)操作系統(tǒng)的語(yǔ)言設(shè)置
作為人工智能時(shí)代的最佳編程語(yǔ)言,Python吸引了廣泛關(guān)注,選擇學(xué)習(xí)Python的人日益增多。盡管Python入門簡(jiǎn)單,但企業(yè)的高要求促使越來(lái)越多的人參加專業(yè)系統(tǒng)學(xué)習(xí)并積累實(shí)戰(zhàn)經(jīng)驗(yà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)容。