計算機常用編碼 (整理的資料)

注意: 編碼的基礎知識:

1.      bit 最小的單元

   字節  byte  機器語言的單位

   換算   1byte=8bits   1kb=1024byte  1MB=1024KB 1GB=1024MB

2.進制  二進制 binary | 八進制 octal |  十進制 decimal |十六進制hex

3.字符:是各種文字和符號的總稱,包括各個國家的文字,標點符號,圖形符號,數字等。                                                                                              字符集:字符集是多個符號的集合,每個字符集包含的字符個數不同。

字符編碼:字符集只是規定了有哪些字符,而最終決定採用哪些字符,每一個字符用多少字節表示等問題,則是由編碼來決定的。計算機要準確的處理各種字符集文字,需要進行字符編碼,以便計算機能夠識別和存儲各種文字。

 

一、Base 64是網絡上最常見的用於傳輸8Bit字節代碼的編碼方式之一

1.項目中牽涉到中文字符的提交可能都需要base 64編碼一下在提交。


轉碼過程例子:

3*8=4*6

內存1個字符佔8

轉前: s 1 3

先轉成ascii:對應 115 49 51

2進制: 01110011 00110001 00110011

6個一組(4組) 011100110011000100110011

然後纔有後面的 011100 110011 000100110011

然後計算機是88位的存數 6不夠,自動就補兩個高位0

所有有了 高位補0

科學計算器輸入 00011100 00110011 00000100 00110011

得到 28 51 4 51

查對下照表 c z E z




 

二、ASCll字符集:美國信息互換標準代碼,是基於羅馬字母表的一套電腦編碼系統,主要顯示英語和一些西歐語言,是現今最通用的單字節編碼系統。

包含內容

控制字符(回車鍵,退格,換行鍵等)

可顯示字符(英文大小寫,阿拉伯數字,西文符號)

擴展字符集(表格符號,計算符號,希臘字母,拉丁符號)

編碼方式

第 0-31 號及 127號是控制字符或通訊專用字符;

第 32-126號是字符,其中 48-57 號爲 0-9 十個阿拉伯數字, 65-90 號爲 26 個 大寫英文字母, 97-122 號爲 26個英文小寫字母,其餘爲一些標點符號,運算符號等。

在計算機存儲單元中,一個 ASCII 碼值佔一個字節( 8個二進制位),最高位是用作奇偶檢驗位。【奇偶校驗是指:在代碼傳送的過程中,用來檢驗是否 出錯的一種方法。】奇偶校驗分爲奇校驗和偶校驗。奇校驗規定:正確的代碼一個字節中 1 的個數必須是奇數,若非奇數,則在最高位添 1;偶校驗規 定:正確的代碼一個字節中 1 的個數必須是奇數,若非奇數,則在最高位添1

 

三、GB2312字符集:信息交換用漢字編碼字符集。是中國標準的簡體中文字符集,它所收錄的漢字已經覆蓋99.75%的使用頻率,在中國大陸和新加坡廣泛使用。

包含內容

GB2312收錄了簡化漢字及一般字符,序號,數字,拉丁字母,日文假名, 希臘字母,俄文字母,漢語拼音符號,漢語注音字母,共 7445 個圖形字符。 其中包括 6763個漢字,一級漢字 3755 個,二級漢字 3008 個。

編碼方式

GB2312對所收漢字進行了“分區”處理,每區含有94個漢字或者符號,這種表示方法也叫做“區位碼”。 它是用雙字節表示的,前面的字節爲第一字節,又稱“高字節”,後面的爲第二字節,“低字節”。 高位字節,把 01-87 區的區號加上 0xA0 (相當於數字 160);低位字節把 01-94 區的區號加上 0xA0(相當於數字160)。 舉個簡單的小例子:第一個漢字— —“啊”,它的區號爲 16,位號 01,則區位碼是 1601。則高字節位:

16+0xA0=0xB0;低字節位:01+0xA0=0xA1,所以“啊”的漢字處理編碼爲

0xB0A1

 

 

四、GBK字符集:GBK 是 GB2312 字符集的擴展( K)(中國的中文編碼表升級,融合了更多的

中文文字符號。),它收錄了 21886 個符號,它分爲漢字區和圖形符號區,

漢字區包括 21003個字符。 GBK 字符集主要擴展了繁體中文字的支持。

 

五、BIG5 字符集:又稱大五碼,由臺灣五家軟件公司創立。因爲當時臺灣沒有一個標準的字符

集,而且 GB2312又沒有收錄繁體字,所以才推出了 BIG5。

包含內容

BIG5 字符集共收錄了13053 箇中文字,該字符集在臺灣使用。但是沒有考慮

到社會上流通的人名,地方用字,方言用字,化學及生物科等用字,沒有包

含日文平假名及片假字母。

編碼方式

BIG5也採用雙字節存儲方法,一兩個字節編碼一個字。高位字節的編碼範圍

是0xA1-0xF9,低位字節的編碼範圍是 0xA1-0xFE。

 

 

六、GB18030 字符集:GB18030 字符集標準解決漢字,日文假名,朝鮮語和中國少數民族文字組成

的大字符集計算機編碼問題。

包含內容:

該標準的字符總編碼空間超過150 萬個編碼位,收錄了 27484 個漢字,覆蓋

中文,日文,朝鮮語和中國少數民族文字。滿足中國大陸,香港,臺灣,日

本和韓國等東南亞地區信息交換多文種,大字量,多用途,統一編碼格式的

要求。

編碼方式:

GB8030標準採用單字節,雙字節和四字節三種方式對字符編碼。 單字節部

分使用 0x00-0x7F碼(對應於 ASCII 碼的相應碼);

雙字節部分,首字節碼從0x81-0xFE,尾字節碼分別是 0x40-0x7E 和 0x80-0xFE。

四字節部分採用0x30-0x39 作爲雙字節編碼擴充的後綴,這樣擴充的四字節

編碼,其範圍是0x81308130-0x0xFE39FE39,其中第一,三個字節編碼位均爲 0x81-0xFE,第二,四個爲

 

 

七、ISO8859-1:拉丁碼錶。歐洲碼錶。用一個字節的 8 位表示。

 

 

八、 Unicode 字符集:( 國際標準碼,融合了多種文字。 所有文字都用兩個字節來表示,Java 語言

使用的就是unicode) University multiple-object coded character set(通用多

八位編碼字符集),支持世界上超過650 種語言的國際字符。 Unicode 允許在

同一服務器上混合使用不同語言,它爲每種語言的每個字符設定了統一併且

唯一的二進制編碼,以滿足跨平臺,跨語言進行文本轉換,處理的要求。

編碼方式:

Unicode標準始終使用十六進制數字,固定使用 2 個字節來表示一個字符,

共可以表示 65536個字符。而且書寫時在前面加上前綴“ U+”,例如 A 的編

碼是004116,則書寫成“ U+0041”。

l Unicode字符集包含的編碼方案:

Ø UTF-8: 最多用三個字節來表示一個字符。) UTF8 是 unicode 其中的一個使用方式。UTF 的意思是: unicode translation format,即把 unicode 轉作某種格式的意思。 UTF-8

使用可變長度字節來存儲unicode 字符,如 ASCII 字母還是採用一個

字符來存儲,希臘字母等採用2 個字符來存儲,而常用的漢字要使

用 3字節,輔助平面字符則使用 4 字節。

Ø UTF-16:

使用一個或兩個未分配的16 位代碼單元的序列對 unicode 代碼

點進行編碼,即 2個字節表示一個字符。

Ø UTF-32:

將每一個 unicode代碼點表示爲相同值的 32 位整數。

Ø 關於 unicode編碼的一個問題:

使 用 記 事 本 另 存爲 時 , 可 以 在 ANSI , GBK,Unicode , unicode big endian 和 UTF-8 這幾種編碼之間相互轉換。同樣是 txt文

件, windows是怎麼識別編碼的呢?

答:平時注意的話可以發現Unicode, unicode big endian 和 UTF-8

編碼的 txt文件的開頭會多出幾個字節,分別是(FF,FE),( FE,FF),

(EF,BB,BF)。那麼這些標記都是基於什麼標準呢? ANSI 字符集: ASCII 字符集,以及由此派生併兼容的字符集。 UTF-16 與UTF-8:如“連通”兩個字,在 UTF-16 中爲:DE 8F 1A 90,

兩個字節決定一個漢字;在UTF-8 中則爲: E8 BF 9E E9 80 9A,即 3

個字節決定一個字符。

當一個軟件打開一個文本時,首先是要決定這個文本究竟是使用

哪種字符集的哪種編碼保存的,軟件一般採用三種方式來決定文本

的字符集和編碼:檢測文件頭標識,提示用戶選擇,根據一定的規

則猜測。不同編碼方式的開頭字節如下:EF BB BF UTF-8 FF FE UTF-16, little endian FE FF UTF-16, big endian FF FE 00 00UTF-32, little endian 00 00 FE FF UTF-32, big endian

注: endian是指字節序, big endian(大尾)和 little endian(小

尾)是 CPU處理多字節數的不同方式。例如“漢”的 unicode 編碼

是6C49,寫到文件中,如果將 6C 寫在前面就是 big endian,將 49

寫在前面就是 littleendian。

 

8.總結:

ASCII, GB2312, GBK GB18030,這些編碼方法是向下兼容的,即同一

個字符在這些方案中總是有相同的編碼,後面的標準支持更多的字符。在這些編

碼中,英文和中文可以統一的處理。區分中文編碼的方法是高字節的最高位不爲0。

計算機使用的缺省編碼方式就是計算機的內碼。有的中文 windows 的缺省內

碼還是 GBK,可以通過 GB18030

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章