python字符编码
字符編碼:
ASCII:占一個(gè)字節(jié),只支持英文
GBK2312:占兩個(gè)字節(jié),支持6700+漢字
GBK GB2312的升級(jí)版:支持21000+漢字
Unicode:2-4個(gè)字節(jié)
Unicode作用:
直接支持全球所有語言,每個(gè)國家可以不再使用之前自己的舊編碼,直接使用unicode
包含了跟全球所有國家編碼的映射關(guān)系
Unicode解決了字符于二進(jìn)制的對(duì)應(yīng)關(guān)系,由于Unicode對(duì)比ASCII編碼占用字節(jié)增加一倍,同時(shí)也為了解決存儲(chǔ)和網(wǎng)絡(luò)傳輸?shù)膯栴},出現(xiàn)了Unicode Transformation Format,學(xué)術(shù)名:UTF,即:對(duì)unicode中的進(jìn)行轉(zhuǎn)換,以便于存儲(chǔ)和網(wǎng)絡(luò)傳輸時(shí)可以節(jié)省空間!
UTF-8: 使用1、2、3、4個(gè)字節(jié)表示所有字符;優(yōu)先使用1個(gè)字符、無法滿足則使增加一個(gè)字節(jié),最多4個(gè)字節(jié)。英文占1個(gè)字節(jié)、歐洲語系占2個(gè)、東亞占3個(gè),其它及特殊字符占4個(gè)。
UTF-16: 使用2、4個(gè)字節(jié)表示所有字符;優(yōu)先使用2個(gè)字節(jié),否則使用4個(gè)字節(jié)表示。
UTF-32: 使用4個(gè)字節(jié)表示所有字符。
總結(jié):UTF 是為unicode編碼 設(shè)計(jì) 的一種 在存儲(chǔ) 和傳輸時(shí)節(jié)省空間的編碼方案
字符在硬盤上的存儲(chǔ),無論以什么編碼在內(nèi)存里顯示字符,存在硬盤上都是二進(jìn)制的。
注意的是:存在硬盤上時(shí)是以什么編碼保存,再從硬盤上讀取時(shí),就必須以相同的編碼讀取,不然會(huì)出現(xiàn)亂碼。
python3的執(zhí)行過程:
解釋器找到代碼文件,把代碼字符串按文件頭定義的編碼加載都內(nèi)存中,轉(zhuǎn)成unicode
把代碼字符串按照語法規(guī)則進(jìn)行解釋
所有的變量字符都會(huì)以u(píng)nicode編碼生命
常見的編碼錯(cuò)誤的原因:
python解釋器的默認(rèn)編碼
python源文件文件編碼
terminal使用的編碼
操作系統(tǒng)的語言設(shè)置
轉(zhuǎn)載于:https://blog.51cto.com/11638205/2335508
總結(jié)
以上是生活随笔為你收集整理的python字符编码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 撩课-Web大前端每天5道面试题-Day
- 下一篇: Python开发【第一篇】:初识Pyth