字符串的編碼

字符串的編碼

  1. 計(jì)算機(jī)只能處理數(shù)字,文本轉(zhuǎn)換為數(shù)字才能處理。計(jì)算機(jī)中的8bit就是一個(gè)字節(jié),所以一個(gè)字節(jié)能表示最大的數(shù)字就是255.
  2. 計(jì)算機(jī)是美國(guó)人發(fā)明的,所以一個(gè)字節(jié)可以表示所有的字符,所以ASCII(一個(gè)字節(jié))編碼成為了美國(guó)人的標(biāo)準(zhǔn)編碼。
  3. 中文里面的字符遠(yuǎn)大于255,所以ASCII編碼處理中文是不夠的,所以中國(guó)制定了GB2312編碼,用兩個(gè)字節(jié)表示一個(gè)漢字。同理,其他國(guó)家為了解決這個(gè)問題,就發(fā)展了很多標(biāo)準(zhǔn),如果出現(xiàn)多種語(yǔ)言混合就會(huì)出現(xiàn)亂碼。
  4. Unicode將所有語(yǔ)言統(tǒng)一到一套標(biāo)準(zhǔn)編碼里面。
  5. 但是,如果內(nèi)容都是英文,Unicode編碼比ASCII編碼多一倍的存儲(chǔ)空間。
  6. 所以出現(xiàn)了可變長(zhǎng)的編碼“UTF-8”,把英文變長(zhǎng)為一個(gè)字節(jié),中文變?yōu)?個(gè)字節(jié),特別生僻的變?yōu)?-6個(gè)字節(jié),如果傳輸大量英文,UTF-8對(duì)比Unicode的優(yōu)勢(shì)就很明顯了

在進(jìn)行代碼處理的時(shí)候,固定長(zhǎng)度的Unicode編碼處理起來(lái)比可變長(zhǎng)度的UTF-8更加方便簡(jiǎn)單,UTF-8的優(yōu)勢(shì)在于文本的存儲(chǔ)和傳送。
在Python3.x中,所有字符串已經(jīng)轉(zhuǎn)換為Unicode編碼。
在Python2.x中,需要將字符串decode為Unicode后才能進(jìn)行encode。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容