常見編碼及轉換

2021-10-06 22:55:03 字數 1549 閱讀 5458

1、bcd碼

(1)壓縮bcd:4位二進位制數表示乙個十進位制數,例如:

0001 0010 --> 12  

0001 0011 --> 13

(2)bcd:8位二進位制數表示乙個十進位制數,高四位為0;

0000 0001 0000 0010 --> 12 

0000 0001 0000 0011 --> 13

一般地,壓縮bcd碼比較常用,可以節約儲存空間。

2、hex

hex就是16進製制,本質上是將位元組陣列轉化為16進製制,然後用字串的形式表現出來。

原理:乙個8bit的資料,也就是(***x ***x),每4個bit可以轉化為乙個16進製表示,也就是8個bit會轉化為(00-ff)之間的16進製制數字。

hex編碼 :指將資料編碼16進製制字串;hex解碼:指16進製制字串解碼為資料。

3、ascii

ascii碼使用乙個位元組編碼,所以它的範圍基本是只有英文本母、數字和一些特殊符號 ,乙個位元組能表示的最大的整數就是255,所以,只有256個字元。
十進位制 ascii 二進位制 hexstring

0 48 00110000 30

1 49 00110001 31

2 50 00110010 32

4、unicode能夠表示全世界所有的位元組,最常用的是用兩個位元組表示乙個字元(如果要用到非常偏僻的字元,就需要4個位元組)。

字母a用ascii編碼是十進位制的65,二進位制的 01000001;

字元0用ascii編碼是十進位制的48,二進位制的 00110000,

注意字元'0'和整數0是不同的;

漢字中已經超出了ascii編碼的範圍,用unicode編碼是十進位制的20013,

二進位制的 01001110 00101101。

可以猜測,如果把ascii編碼的a用unicode編碼,只需要在前面補0就可以,

因此,a的unicode編碼是00000000 01000001。

5、gbk是只用來編碼漢字的,gbk全稱《漢字內碼擴充套件規範》,使用雙位元組編碼。

6、utf-8(8-bit unicode transformation format)是一種針對unicode的可變長度字元編碼,又稱萬國碼。

utf-8用1到6個位元組編碼unicode字元。

用在網頁上可以同一頁面顯示中文簡體繁體及其它語言(如英文,日文,韓文)。

字元 ascii unicode utf-8

a 01000001 00000000 01000001 01000001

中 x 01001110 00101101 11100100 10111000 10101101

從上面的**還可以發現,utf-8編碼有乙個額外的好處,就是ascii編碼實際上可以被看成是utf-8編碼的一部分,所以,大量只支援ascii編碼的歷史遺留軟體可以在utf-8編碼下繼續工作。
編碼轉換:

進製轉換:

編碼方式及轉換

ascii碼 用八位二進位制表示乙個英文 乙個位元組 unicode 中英文均用32位二進位制表示 四個位元組 utf 8 英 8位 乙個位元組 中 24位 三個位元組 gbk 英 8位 乙個位元組 中 16位 兩個位元組 1 各個編碼之間的二進位制不能相互識別 2 檔案的儲存,傳輸不能是unico...

Linux的編碼及編碼轉換

如果你需要在linux中操作windows下的檔案,那麼你可能會經常遇到檔案編碼轉換的問題。windows中預設的檔案格式是gbk gb2312 而linux一般都是utf 8。下面介紹一下,在linux中如何檢視檔案的編碼及如何進行對檔案進行編碼轉換。檢視檔案編碼 在linux中檢視檔案編碼可以通...

php編碼轉換及問題

首先,編碼,在大陸,最常見的也就兩種,一種是utf 8,一種是gbk gb2312。gb2312是簡體中文編碼。gbk gb2312是中文編碼,二者是相對相容的。資料庫儲存資料,一般採用utf8編碼方式。而常常我們windows系統預設的編碼方式是gb2312,這就出現了編碼不統一的問題。情景 寫入...