utf-8的中文辣吃,一個(gè)字符占幾個(gè)字節(jié)

轉(zhuǎn)自 https://blog.csdn.net/kindsuper_liu/article/details/80202150

英文字母和中文漢字在不同字符集編碼下的字節(jié)數(shù)
英文字母:
·字節(jié)數(shù) : 1;編碼:GB2312

字節(jié)數(shù) : 1;編碼:GBK

字節(jié)數(shù) : 1;編碼:GB18030

字節(jié)數(shù) : 1;編碼:ISO-8859-1

字節(jié)數(shù) : 1;編碼:UTF-8

字節(jié)數(shù) : 4;編碼:UTF-16

字節(jié)數(shù) : 2;編碼:UTF-16BE

字節(jié)數(shù) : 2;編碼:UTF-16LE

中文漢字:
字節(jié)數(shù) : 2;編碼:GB2312

字節(jié)數(shù) : 2;編碼:GBK

字節(jié)數(shù) : 2;編碼:GB18030

字節(jié)數(shù) : 1;編碼:ISO-8859-1

字節(jié)數(shù) : 3;編碼:UTF-8

字節(jié)數(shù) : 4;編碼:UTF-16

字節(jié)數(shù) : 2;編碼:UTF-16BE

字節(jié)數(shù) : 2;編碼:UTF-16LE

美國(guó)人首先對(duì)其英文字符進(jìn)行了編碼,也就是最早的ascii碼仰猖,用一個(gè)字節(jié)的低7位來表示英文的128個(gè)字符,高1位統(tǒng)一為0奈籽;

后來歐洲人發(fā)現(xiàn)你這128位哪夠用饥侵,比如法國(guó)人字母上面的還有注音符,這個(gè)怎么區(qū)分衣屏,于是把高1位編進(jìn)來吧躏升,這樣歐洲普遍使用一個(gè)全字節(jié)進(jìn)行編碼,最多可表示256位狼忱。

但是即使位數(shù)少膨疏,不同國(guó)家地區(qū)用不同的字符編碼,雖然0–127表示的符號(hào)是一樣的钻弄,但是128–255這一段的解釋完全亂套了佃却,即使2進(jìn)制完全一樣,表示的字符完全不一樣窘俺,比如135在法語饲帅,希伯來語,俄語編碼中完全是不同的符號(hào)瘤泪;

更麻煩的是灶泵,這編碼傳到中國(guó)后,中國(guó)人發(fā)現(xiàn)我們有10萬多個(gè)漢字对途,你們歐美這256字塞牙縫都不夠赦邻。于是就發(fā)明了GB2312這些漢字編碼,典型的用2個(gè)字節(jié)來表示絕大部分的常用漢字实檀,最多可以表示65536個(gè)漢字字符惶洲,這樣就不難理解有些漢字你在新華字典里查得到按声,但是電腦上如果不處理一下你是顯示不出來的了吧。

這下各用各的字符集編碼湃鹊,這世界咋統(tǒng)一儒喊?俄國(guó)人發(fā)封email給中國(guó)人,兩邊字符集編碼不同币呵,尼瑪顯示都是亂碼啊怀愧。為了統(tǒng)一,于是就發(fā)明了unicode余赢,將世界上所有的符號(hào)都納入其中芯义,每一個(gè)符號(hào)都給予一個(gè)獨(dú)一無二的編碼,現(xiàn)在unicode可以容納100多萬個(gè)符號(hào)妻柒,每個(gè)符號(hào)的編碼都不一樣扛拨,這下可統(tǒng)一了,所有語言都可以互通举塔,一個(gè)網(wǎng)頁頁面里可以同時(shí)顯示各國(guó)文字绑警。

然而,unicode雖然統(tǒng)一了全世界字符的二進(jìn)制編碼央渣,但沒有規(guī)定如何存儲(chǔ)啊计盒。x86和amd體系結(jié)構(gòu)的電腦小端序和大端序都分不清,別提計(jì)算機(jī)如何識(shí)別到底是unicode還是acsii了芽丹。如果Unicode統(tǒng)一規(guī)定北启,每個(gè)符號(hào)用三個(gè)或四個(gè)字節(jié)表示,那么每個(gè)英文字母前都必然有二到三個(gè)字節(jié)是0拔第,文本文件的大小會(huì)因此大出二三倍咕村,這對(duì)于存儲(chǔ)來說是極大的浪費(fèi)。這樣導(dǎo)致一個(gè)后果:出現(xiàn)了Unicode的多種存儲(chǔ)方式蚊俺。

互聯(lián)網(wǎng)的興起懈涛,網(wǎng)頁上要顯示各種字符,必須統(tǒng)一泳猬。utf-8就是Unicode最重要的實(shí)現(xiàn)方式之一肩钠。另外還有utf-16、utf-32等暂殖。UTF-8不是固定字長(zhǎng)編碼的价匠,而是一種變長(zhǎng)的編碼方式。它可以使用1~4個(gè)字節(jié)表示一個(gè)符號(hào)呛每,根據(jù)不同的符號(hào)而變化字節(jié)長(zhǎng)度踩窖。這是種比較巧妙的設(shè)計(jì),如果一個(gè)字節(jié)的第一位是0晨横,則這個(gè)字節(jié)單獨(dú)就是一個(gè)字符洋腮;如果第一位是1箫柳,則連續(xù)有多少個(gè)1,就表示當(dāng)前字符占用多少個(gè)字節(jié)啥供。

注意unicode的字符編碼和utf-8的存儲(chǔ)編碼表示是不同的悯恍,例如”嚴(yán)”字的Unicode碼是4E25,UTF-8編碼是E4B8A5伙狐,這個(gè)7里面解釋了的涮毫,UTF-8編碼不僅考慮了編碼,還考慮了存儲(chǔ)贷屎,E4B8A5是在存儲(chǔ)識(shí)別編碼的基礎(chǔ)上塞進(jìn)了4E25罢防。

UTF-8 使用一至四個(gè)字節(jié)為每個(gè)字符編碼。128 個(gè) ASCII 字符(Unicode 范圍由 U+0000 至 U+007F)只需一個(gè)字節(jié)唉侄,帶有變音符號(hào)的拉丁文咒吐、希臘文、西里爾字母属划、亞美尼亞語恬叹、希伯來文、阿拉伯文同眯、敘利亞文及馬爾代夫語(Unicode 范圍由 U+0080 至 U+07FF)需要二個(gè)字節(jié)绽昼,其他基本多文種平面(BMP)中的字符(CJK屬于此類-Qieqie注)使用三個(gè)字節(jié),其他 Unicode 輔助平面的字符使用四字節(jié)編碼嗽测。

所以知道utf-8的中文是一個(gè)字符占幾個(gè)字節(jié)了吧绪励?
————————————————
版權(quán)聲明:本文為CSDN博主「KindSuper_liu」的原創(chuàng)文章肿孵,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議唠粥,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/kindsuper_liu/article/details/80202150

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末停做,一起剝皮案震驚了整個(gè)濱河市晤愧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蛉腌,老刑警劉巖官份,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異烙丛,居然都是意外死亡舅巷,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門河咽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來钠右,“玉大人,你說我怎么就攤上這事忘蟹§浚” “怎么了搁凸?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)狠毯。 經(jīng)常有香客問我护糖,道長(zhǎng),這世上最難降的妖魔是什么嚼松? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任嫡良,我火速辦了婚禮,結(jié)果婚禮上惜颇,老公的妹妹穿的比我還像新娘皆刺。我一直安慰自己,他們只是感情好凌摄,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布羡蛾。 她就那樣靜靜地躺著,像睡著了一般锨亏。 火紅的嫁衣襯著肌膚如雪痴怨。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天器予,我揣著相機(jī)與錄音浪藻,去河邊找鬼。 笑死乾翔,一個(gè)胖子當(dāng)著我的面吹牛爱葵,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播反浓,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼萌丈,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了雷则?” 一聲冷哼從身側(cè)響起辆雾,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎月劈,沒想到半個(gè)月后度迂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡猜揪,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年惭墓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片而姐。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡腊凶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吭狡,我是刑警寧澤尖殃,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站划煮,受9級(jí)特大地震影響送丰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜弛秋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一器躏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蟹略,春花似錦登失、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至意敛,卻和暖如春馅巷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背草姻。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工钓猬, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人撩独。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓敞曹,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親综膀。 傳聞我的和親對(duì)象是個(gè)殘疾皇子澳迫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 編碼問題一直困擾著開發(fā)人員,尤其在 Java 中更加明顯僧须,因?yàn)?Java 是跨平臺(tái)語言纲刀,不同平臺(tái)之間編碼之間的切換...
    x360閱讀 2,480評(píng)論 1 20
  • UTF-8 編碼提供了一種簡(jiǎn)便而向后兼容的方法, 使得那種完全圍繞 ASCII 設(shè)計(jì)的操作系統(tǒng), 比如 Unix,...
    謝大見閱讀 4,699評(píng)論 0 3
  • 2017年254期3D鑫鑫預(yù)測(cè) 和值:01.11.21.8.18 六碼組六项炼,組三:124579 五碼組六担平,組三:2...
    eb50d8ec7ef0閱讀 1,401評(píng)論 0 1
  • 不是所有人都能到達(dá) 安貧樂道的境界 世界上最崇高的理想 從來都不是物質(zhì) 每一次的修行都是 帶淚的微笑 只有堅(jiān)持,只...
    臨風(fēng)誦書閱讀 476評(píng)論 1 7
  • 今天在LInckia海星客里看到一對(duì)同事突然就莫名其妙的吵起來了锭部,我覺得完全沒有必要暂论,還影響工作。每個(gè)人都有固有的...
    skyjun閱讀 278評(píng)論 0 2