字符編碼

字符編碼

前置知識

一、程序執行的三大核心硬件:CPU、內存、硬盤python

二、正常執行一個程序流程:優化

​ 一、將硬盤中數據讀取到內存編碼

​ 二、CPU從內存中讀取數據,執行3d

​ 三、軟件運行中產生的數據優先存到內存,若要永久保存,則需由內存寫入硬盤code

三、python解釋器執行一個py文件過程orm

​ 一、啓動python解釋器blog

​ 二、將py文件從硬盤讀到內存內存

​ 三、python解釋器從內存中讀py文件utf-8

​ 四、識別py文件中python語法,執行相應操做unicode

字符編碼

字符:世界上一切語言、文字

文件的輸入和輸出是兩個過程

人類輸入的內容都是人類本身能夠識別的字符,計算機只能識別0101010二進制字符

將人類的字符,存入內存和硬盤,要經歷一個過程:

***人類的字符 >>>>>>> (字符編碼表) >>>> 計算機二進制

發展史

1.一家獨大

美國,ASCII碼,一個英文對應一個bytes,一個bytes等於八個bit(二進制字節)

2.天下三分

各國擁有本身本國語言的編碼表

中國 ,GBK,一個英文對應一個bytes,一箇中文對應2個bytes

日本,shift......
三、分久必合

(萬國碼)unicode

爲了兼容全部的國家的字符,生成unicode,全部的字符都用2bytes

一、佔用存儲空間
二、io次數增長,程序運行速度變慢(最致命)

utf-8

在unicode二進制數據存入硬盤的時候,作了優化

utf-8:
utf-8只與unicode有對應關係
unicode transformation format

全部的英文字符用1個bytes表示
全部的中文字符用3個bytes表示

如今的計算機:
內存都是:unicode
硬盤都是:utf-8

內存和硬盤兼容unicode:

一、不管存入什麼字符到內存,unicode均可以兼容

二、硬盤中不管是什麼編碼文件,讀到內存中,均可以兼容unicode

數據的傳輸:

​ 優先以本身本國的字符編碼進行傳遞

內存、硬盤的編碼轉換:

(內存)unicode二進制字符 >>> 編碼(encode) >>> (硬盤)utf-8二進制字符

(硬盤)utf-8二進制字符 >>> 解碼(decode) >>> (內存)unicode二進制字符

保證不亂碼的核心:

用什麼字符編碼存,用什麼字符編碼取

文件頭:

coding : utf-8

python2 :
默認的字符編碼ASCII碼(由於當時的unicode還沒盛行),因此pycharm寫的代碼都是utf-8的在python2中必定要寫文件頭
python3:
默認的字符編碼utf-8

pycharm默認的字符編碼是:utf-8

中文Windows系統默認的字符編碼是:GBK

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息