【編碼】ASCII、ISO 8859-1、Unicode(UTF-8/16/32)

編碼學習筆記,資料來源互聯網,持續更新

1 ASCII

  • American Standard Code for Information Interchange,美國信息交換標準代碼。
  • 用7位表示128個字符,針對英語設計。
  1. 0~31、127(33個):控制字符
  2. 32~126(95個):可顯示字符


    ASCII碼對應表

2 ISO 8859-1

用8位表示256個字符

3 Unicode

??很多傳統的編碼方式都有一個共同的問題,即容許電腦處理雙語環境(通常使用拉丁字母以及其本地語言),但卻無法同時支持多語言環境(指可同時處理多種語言混合的情況)。
??Unicode(統一碼、萬國碼、單一碼)是為了解決傳統的字符編碼方案的局限而產生的,它為每種語言中的每個字符設定了統一并且唯一的二進制編碼,以滿足跨語言、跨平臺進行文本轉換、處理的要求。

3.1 編碼

??目前的Unicode字符分為17組編排,0x0000 至 0x10FFFF,每組稱為平面(Plane),而每平面擁有65536個碼位,共1114112個。在第0平面中,中文范圍是0x4E00-0x9FA5。

3.2 UTF

??對可以用ASCII表示的字符使用Unicode并不高效,因為Unicode比ASCII占用大一倍的空間,而對ASCII來說高字節的0對他毫無用處。為了解決這個問題,就出現了一些中間格式的字符集,他們被稱為通用轉換格式,即UTF(Unicode Transformation Format)。常見的UTF格式有:UTF-7, UTF-7.5, UTF-8, UTF-16以及UTF-32。

??在Unicode中,“漢字”兩個字對應的十六進制是分別是0x6c49和0x5b57,通過編碼:

char      data_utf8[]={0xE6,0xB2,0x94,0xE5,0xAD,0x97};//UTF-8編碼
char16_t data_utf16[]={0x6C49,0x5B57};                //UTF-16編碼
char32_t data_utf32[]={0x00006C49,0x00005B57};        //UTF-32編碼

??這里用char、char16_t、char32_t分別表示無符號8位整數,無符號16位整數和無符號32位整數。UTF-8、UTF-16、UTF-32分別以char、char16_t、char32_t作為編碼單位。“漢字”的UTF-8編碼需要6個字節?!皾h字”的UTF-16編碼需要4個字節?!皾h字”的UTF-32編碼8個字節。根據字節序的不同,UTF-16可以被實現為UTF-16LE或UTF-16BE,UTF-32可以被實現為UTF-32LE或UTF-32BE。
??下面分別介紹UTF-8/16/32如何編碼。

3.2.1 UTF-8

UTF-8編碼規則:如果只有一個字節則其最高二進制位為0;如果是多字節,其第一個字節從最高位開始,連續的二進制位值為1的個數決定了其編碼的字節數,其余各字節均以10開頭。UTF-8轉換表表示如下:

Unicode/UCS-4 bit數 UTF-8 byte數
0000~ 007F 0~7 0XXX XXXX 1
0080~ 07FF 8~11 110X XXXX
10XX XXXX
2
0800~ FFFF 12~16 1110 XXXX
10XX XXXX
10XX XXXX
3
1 0000~ 1F FFFF 17~21 1111 0XXX
10XX XXXX
10XX XXXX
10XX XXXX
4
3.2.2 UTF-16
3.2.3 UTF-32

Reference:

  1. 百度百科-UTF-8
  2. 百度百科-Unicode
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,363評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,497評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,305評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,962評論 1 311
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,727評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,193評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,257評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,411評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,945評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,777評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,978評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,519評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,216評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,642評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,878評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,657評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,960評論 2 373

推薦閱讀更多精彩內容

  • 1. ASCII ??我們知道,計算機內部是通過二進制數據進行操作的,所有的信息最終都會轉換為一個二進制值,二進制...
    騎著烏龜去看海閱讀 1,693評論 0 4
  • ??計算機是以二進制的形式來存儲數據的,它只認識 0 和 1 兩個數字,我們在屏幕上看到的文字,在存儲之前都被轉換...
    沒我找不到電子書閱讀 3,815評論 0 1
  • 字符是用戶可以讀寫的最小單位。計算機所能支持的字符組成的集合,就叫做字符集。字符集通常以二維表的形式存在。二維表的...
    劉惜有閱讀 8,155評論 2 14
  • Linux 三個特殊進程: PID 0 idle進程 特點:1、系統自建的首個進程 2、創建運行內核空間 3、系統...
    way180閱讀 365評論 0 0
  • 已經很長時間沒有用過13月亮歷了,在接觸奇跡課程之后,對于很多分類、層次劃分的東西比較抵觸,但是每次看到13月亮歷...
    心空站閱讀 351評論 0 2