ASCII

--聲明此文章源於老男孩教育程序員

Python解釋器在加載.py文件中間的代碼,會對內容進行編碼(默認ASCII)。優化

ASCII(American Standard Code for Information Interchange,美國標準信息交換代碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語與西歐語言,最多隻能用8位來表示(一個字節),即2^8=256-1,因此ASCII最多隻能表示255個字符。編碼

關於中文設計

爲了處理漢字,程序員設計了用於簡體中文的GB2312和用於繁體的中文的big5。code

GB2312(1980年)一共收錄7445個字符,包括6763個漢字和682個其它符號。漢子區的內碼範圍高字節從B0-F7,低字節從A1-FE,佔用的碼位是72*94=6769.其中有5個空位是D7FA-D7FE。orm

GB2312支持的漢字太少。1995年的漢字擴展規範GBK1.0收錄了21886個符號,它分爲漢字區和圖形符號區,漢字區包括21003個字符。2000年的GB18030是取代GBK1.0的正是國家標準。該標準收錄了27484個漢字,同時還收錄了藏文、蒙文、維吾爾文等主要的少數民族文字。如今的PC平臺必須支持GB18030,對嵌入式產品暫不做要求。因此對手機、mp3通常支持GB2312。產品

從ASCII、GB23十二、GBK到GB18030,這些編碼方法是向下兼容的,即同一個字符在這些方案中總數有相同的編碼,後面的支持更多的字符。在這些編碼中英文和中文能夠統一處理。區分中文編碼的方法是高字節的最高位不爲0。按照程序員的稱呼,GB23十二、GBK到GB18030都屬於雙字節字符集(DBCS)。io

有的中文Windows的缺省內碼仍是GBK,能夠經過GB18030升級包升級到GB18030。不過GB18030相對GBK增長的字符,一般人是很難用到的,一般咱們仍是用GBK指代中文Windows內碼。字符編碼

顯然ASCII碼沒法將世界的各類文字和符號所有表示,因此,就須要新出一種能夠表明全部字符和符號的編碼,即Unicodetable

Unicode(統一碼、萬國碼、單一碼)是一種在計算機上使用的字符編碼,Unicode是爲解決傳統的字符編碼方案的侷限而產生,他爲每一種語言的每個字符設定了贊成而且惟一的二進制編碼,規定雖有的字符和符號最少由16位來表示(2個字節),即:2**16=65536,

注:此處說的是最少2個字節,可能更多UTF-8,是對Unicode編碼的壓縮和優化,他再也不使用最少2個字節,而是將全部的字符和符號進行分類ASCII碼的內容用1個字節保存、歐洲的字符用2個字節保存,東亞的字符用3個字節保存。

因此。Python解釋器在加載.py文件中的代碼時,會對內容進行默認編碼。

相關文章
相關標籤/搜索