1. 程式人生 > 資訊 >天弘餘額寶釋出 2021 年 Q2 報告:規模 7808.09 億元,環比減少近兩成

天弘餘額寶釋出 2021 年 Q2 報告:規模 7808.09 億元,環比減少近兩成

一、字元編碼

1.什麼是字元編碼

字元編碼中的編碼指的是翻譯或者轉換的意思,即將人能理解的字元翻譯成計算機能識別的數字

字元——》翻譯——》數字

2.字元編碼發展史(瞭解)

2.1階段一:一家獨大

計算機起源於美國,所以最先考慮僅僅是讓計算機識別英文字元,於是誕生了ASCII表

ASCII表的特點: 1、只有英文字元與數字的一一對應關係 2、一個英文字元對應1Bytes1Bytes=8bit8bit最多包含256個數字,可以對應256個字元,足夠表示所有英文字元

2.2階段二:諸侯割據、天下大亂

 GBK表的特點:(中文、英文)

1、只有中文字元、英文字元與數字的一一對應關係

2、一個英文字元對應1Bytes 一箇中文字元對應2Bytes 補充說明: 1Bytes=8bit,8bit最多包含256個數字,可以對應256個字
符,足夠表示所有英文字元 2Bytes=16bit,16bit最多包含65536個數字,可以對應65536個字元,足夠表示所有中文字元
 Shift_JIS表的特點:(日文、英文)
    1、只有日文字元、英文字元與數字的一一對應關係

 Euc-kr表的特點:(韓文、英文)
    1、只有韓文字元、英文字元與數字的一一對應關係

2.3階段三:分久必合

英文字元可以被ASCII識別

英文字元--->unciode格式的數字--->ASCII格式的數字

中文字元、英文字元可以被GBK識別

中文字元、英文字元--->unicode格式的數字--->gbk格式的數字

日文字元、英文字元可以被shift-JIS識別

日文字元、英文字元--->unicode格式的數字--->shift-JIS格式的數字

3.編碼與解碼

由字元轉換成記憶體中的unicode,以及由unicode轉換成其他編碼的過程,都稱為編碼encode

由記憶體中的unicode轉換成字元,以及由其他編碼轉換成unicode的過程,都稱為解碼decode

4.utf-8的由來

多國字元—√—》記憶體(unicode格式的二進位制)——X—》硬碟(GBK格式的二進位制)

多國字元—√—》記憶體(unicode格式的二進位制)——X—》硬碟(Shift_JIS格式的二進位制)

多國字元—√—》記憶體(unicode格式的二進位制)——√—》硬碟(
???格式的二進位制)

理論上是可以將記憶體中unicode格式的二進位制直接存放於硬碟中的,但由於unicode固定使用兩個位元組來儲存一個字元,如果多國字元中包含大量的英文字元時,使用unicode格式存放會額外佔用一倍空間(英文字元其實只需要用一個位元組存放即可),然而空間佔用並不是最致命的問題,最致命地是當我們由記憶體寫入硬碟時會額外耗費一倍的時間,所以將記憶體中的unicode二進位制寫入硬碟或者基於網路傳輸時必須將其轉換成一種精簡的格式,這種格式即utf-8(全稱Unicode Transformation Format,即unicode的轉換格式)

多國字元—√—》記憶體(unicode格式的二進位制)——√—》硬碟(utf-8格式的二進位制)

二字元編碼的應用

總結:1. 保證存的時候不亂:在由記憶體寫入硬碟時,必須將編碼格式設定為支援所輸入字元的編碼格式

2. 保證存的時候不亂:在由硬碟讀入記憶體時,必須採用與寫入硬碟時相同的編碼格式

1. 文字編輯器nodpad++存取文字檔案

文字編輯器存取的都是文字檔案,而文字檔案中包含的內容全為字元,所以存取文字檔案都涉及到字元編碼的問題

2. pytho直譯器執行檔案的前兩個階段

python3中預設為utf-8

python2中預設為ASCII 在指定的檔案頭修改預設的編碼(在python檔案的首行寫coding:當初檔案寫入硬碟時採用的編碼格式)

3. python直譯器執行檔案的第三個階段

在Python3中,字串類的值都是使用unicode格式來儲存

在Python2中是按照檔案頭指定的編碼來儲存字串型別的值的(如果檔案頭中沒有指定編碼,那麼直譯器會按照它自己預設的編碼方式來儲存‘上’) 補救措施,就是在字串型別前加u,則會將字串型別強制儲存 x=u"上"

4 字串encode編碼與decode解碼的使用

1.unicode格式編碼
  X=""
  res=x.encode("utf-8")
  res,type(res)
  (b'\xe4\xb8\x8a', <class 'bytes'>)

2.其他編碼格式
  res.decode("utf-8")
  ""