各種字符集與編碼格式區(qū)分

做程序猿這么多年,其實對各種編碼格式雖有了解诡蜓,但是讓我說出各個的區(qū)別和聯(lián)系熬甫,還真有點難度,所以万牺,把這些編碼格式梳理一遍罗珍,如下洽腺。

字符集

1. ASCII字符集

ASCII 碼使用指定的7 位二進制數(shù)組合來表示128種可能的字符。標準ASCII 碼也叫基礎ASCII碼覆旱,使用7 位二進制數(shù)(剩下的1位二進制為0)來表示所有的大寫和小寫字母蘸朋,數(shù)字0 到9、標點符號扣唱, 以及在美式英語中使用的特殊控制字符藕坯。

0~31及127(共33個)是控制字符或通信專用字符(其余為可顯示字符),如控制符:LF(換行)噪沙、CR(回車)炼彪、FF(換頁)、DEL(刪除)正歼、BS(退格)辐马、BEL(響鈴)等;通信專用字符:SOH(文頭)局义、EOT(文尾)喜爷、ACK(確認)等;ASCII值為8萄唇、9檩帐、10 和13 分別轉換為退格、制表另萤、換行和回車字符湃密。它們并沒有特定的圖形顯示,但會依不同的應用程序四敞,而對文本顯示有不同的影響泛源。

32~126(共95個)是字符(32是空格),其中48~57為0到9十個阿拉伯數(shù)字忿危。

65~90為26個大寫英文字母俩由,97~122號為26個小寫英文字母,其余為一些標點符號癌蚁、運算符號等。

后128個稱為擴展ASCII碼兜畸。許多基于x86的系統(tǒng)都支持使用擴展(或“高”)ASCII努释。擴展ASCII 碼允許將每個字符的第8 位用于確定附加的128 個特殊符號字符、外來語字母和圖形符號咬摇。

2. Unicode字符集

unicode是一個字符集伐蒂,里面幾乎包含了目前世界上已知的所有字符,且該字符集將二進制代碼和字符形成一一映射肛鹏。它為每種語言中的每個字符設定了統(tǒng)一并且唯一的二進制編碼逸邦,以滿足跨語言恩沛、跨平臺進行文本轉換、處理的要求缕减。

編碼格式

1. UTF-8編碼傳輸格式

Unicode字符集中對字符的編碼是長度不確定的雷客,其中有的字符是兩個字符,有的是三個字符桥狡,這給計算機進行解碼帶來了困難搅裙。

所以我們想給每個字符對應的二進制碼前加上一個標記,讓計算機看到這個標記就知道它將要讀取幾個字節(jié)裹芝,那么這個標記該怎么加呢部逮?

這就導致人們引入UTF-8,它的英文全稱是8-bit Unicode Transformation Format嫂易,可以看出它是將原本的Unicode碼進行了transformation兄朋,這種transformation 就是給每個Unicode碼進行標記,使得讓計算機看到某個標記就知道待會要讀取幾個字節(jié)的代碼怜械。

UTF-8編碼規(guī)則

UTF-8的編碼規(guī)則很簡單颅和,只有二條:

  1. 對于單字節(jié)的符號,字節(jié)的第一位設為0宫盔,后面7位為這個符號的unicode碼融虽。因此對于英語字母,UTF-8編碼和ASCII碼是相同的灼芭。
  2. 對于n字節(jié)的符號(n>1)有额,第一個字節(jié)的前n位都設為1,第n+1位設為0彼绷,后面字節(jié)的前兩位一律設為10巍佑。剩下的沒有提及的二進制位,全部為這個符號的unicode碼寄悯。
2. ANSI編碼格式

ANSI(American National Standards Institute)萤衰,中文:美國國家標準學會。

為使計算機支持更多語言猜旬,通常使用 0x80~0xFF 范圍的多個字節(jié)來表示 1 個字符脆栋。比如:漢字 '中' 在簡體中文Windows操作系統(tǒng)中,使用 [0xD6,0xD0] 這兩個字節(jié)存儲洒擦。對于ANSI編碼而言椿争,0x00~0x7F之間的字符,依舊是1個字節(jié)代表1個字符熟嫩。

在簡體中文Windows操作系統(tǒng)中秦踪,ANSI 編碼代表 GBK 編碼;在日文Windows操作系統(tǒng)中,ANSI 編碼代表 Shift_JIS 編碼椅邓。 不同 ANSI 編碼之間互不兼容柠逞,當信息在國際間交流時,無法將屬于兩種語言的文字景馁,存儲在同一段 ANSI 編碼的文本中板壮。

總之,需要將編碼格式和字符集兩個概念區(qū)分開來裁僧,再去理解會容易一些个束。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市聊疲,隨后出現(xiàn)的幾起案子茬底,更是在濱河造成了極大的恐慌,老刑警劉巖获洲,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件阱表,死亡現(xiàn)場離奇詭異,居然都是意外死亡贡珊,警方通過查閱死者的電腦和手機最爬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來门岔,“玉大人爱致,你說我怎么就攤上這事『妫” “怎么了糠悯?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長妻往。 經(jīng)常有香客問我互艾,道長,這世上最難降的妖魔是什么讯泣? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任纫普,我火速辦了婚禮,結果婚禮上好渠,老公的妹妹穿的比我還像新娘昨稼。我一直安慰自己,他們只是感情好拳锚,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布悦昵。 她就那樣靜靜地躺著,像睡著了一般晌畅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上寡痰,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天抗楔,我揣著相機與錄音棋凳,去河邊找鬼。 笑死连躏,一個胖子當著我的面吹牛剩岳,可吹牛的內容都是我干的。 我是一名探鬼主播入热,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼拍棕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了勺良?” 一聲冷哼從身側響起绰播,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎尚困,沒想到半個月后蠢箩,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡事甜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年谬泌,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逻谦。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡掌实,死狀恐怖,靈堂內的尸體忽然破棺而出邦马,到底是詐尸還是另有隱情贱鼻,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布勇婴,位于F島的核電站忱嘹,受9級特大地震影響,放射性物質發(fā)生泄漏耕渴。R本人自食惡果不足惜拘悦,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望橱脸。 院中可真熱鬧础米,春花似錦、人聲如沸添诉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽栏赴。三九已至蘑斧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背竖瘾。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工沟突, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人捕传。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓惠拭,卻偏偏與公主長得像,于是被迫代替她去往敵國和親庸论。 傳聞我的和親對象是個殘疾皇子职辅,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內容