計算機編碼原理 以Python為例的解析
阿新 • • 發佈:2018-11-22
美國人發明了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