1. 程式人生 > >計算機編碼原理 以Python為例的解析

計算機編碼原理 以Python為例的解析

美國人發明了uscii,只包括數字字元和一些字元。於是中國人就制定了GB2312。後來為了統一世界的語言制定了UTF-8。
在Pyhton中一個方法是ord():將字元轉換為十進位制碼,這個十進位制碼就代表編碼表中字元的編碼, A的編碼為65。
>>> '\u4e2d\u6587'
'中文'
在python中輸入以前編碼會輸出中文,\u4e2d\u6587其實代表十六進位制,十進位制為20013 25991,這些數字又可以有不同的位元組數,隨編碼格式的不同變化,例如utf-8為三個位元組(除偏僻中文),gbk為兩個位元組。比如用utf8,20013轉換為位元組流就為"\xe4\xb8\ad",用gbk 轉換為"\xd6\xd0",但不管如何轉換最終都是十進位制20013 十六進位制\u4e2d。
具體20013是如何轉換為\xe4\xb8\ad 的編碼規則為
   Unicode符號範圍                   |   UTF-8編碼方式

     (十六進位制) (十進位制)     |   (二進位制)
  —————————————————————————————————-
   0000 0000-0000 007F (0-127) |    0xxxxxxx
   0000 0080-0000 07FF (128-2047) |    110xxxxx 10xxxxxx
   0000 0800-0000 FFFF (2048-65535) |   1110xxxx 10xxxxxx 10xxxxxx
   0001 0000-0010 FFFF (65536-1114111) |    11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

參考:https://www.cnblogs.com/leesf456/p/5317574.html