談?wù)剬?duì)Unicode和UTF8的理解

之前一直搞不懂 gb2312 gbk ASCII utf8 utf32 這些7788的東西。
現(xiàn)在我談一下對(duì)他的理解。
因?yàn)橛?jì)算機(jī)底層是01010101010這種的2進(jìn)制存儲(chǔ)眠蚂,所以你存儲(chǔ)的時(shí)候怎么把這種01010的二進(jìn)制在轉(zhuǎn)換的時(shí)候變成中文或英文還有一些表情或則+-乘除這些符號(hào)呢。

其實(shí)這個(gè)就是字符集通俗講就是2進(jìn)制的不同位代表的每個(gè)中文或英文這些東西

比如1個(gè)字節(jié)8位
假如0000 0001  代表 中文  我 
0000 0002  代表中文 愛
那么計(jì)算機(jī)底層就會(huì)存儲(chǔ)

00000001  00000002  就是  我愛 就可以翻譯過來了 空格為了方便查看 但是 但是  這是我獨(dú)家定義的對(duì)應(yīng)關(guān)系 
實(shí)際上ASCII  和  gbk  gb2312  Unicode 都是分別定義了 這種關(guān)系就是這個(gè)意思 他們是一類的 都叫字符集
這個(gè)時(shí)候有人說gbk不是編碼格式么 下面會(huì)講解

ASCII  這個(gè)玩意是最早出來的字符集 他都是英文字母和基本符號(hào) 因?yàn)橛⑽臎]多少字母所以 1個(gè)字節(jié)就搞定了對(duì)應(yīng)關(guān)系
但是中國文字多 中國又定義了一份 gb2312 用了2個(gè)字節(jié)  也就是65535 可以標(biāo)識(shí)大多數(shù)中文   所以又出現(xiàn)一個(gè)字符集

然后 后期gbk是對(duì) gb2312的升級(jí) 加入了 日語韓語  好像也是2個(gè)字節(jié) 這個(gè)我沒太詳細(xì)去查詢
還有其他的字符集香港自己的字符集

這么多字符集所以存的都是0100110101010這種2進(jìn)制 但是不同字符集對(duì)應(yīng)的 含義肯定不完全相同所以需要一個(gè)統(tǒng)一的字符集 這個(gè)時(shí)候 出現(xiàn)了 unicode   就是它統(tǒng)一了字符集 

所以u(píng)nicode可以標(biāo)識(shí)任何的你想標(biāo)識(shí)的中文英文符號(hào)其他語言等等胀糜。
說到這里字符集應(yīng)該說明白了
下面講講為什么需要utf8這個(gè)東西
還是拿我上面講的獨(dú)家對(duì)應(yīng)關(guān)系舉例子 
假如0000 0001  代表 中文  我 
0000 0002  代表中文 愛
那么計(jì)算機(jī)底層就會(huì)存儲(chǔ)
00000001  00000002  就是  我愛    
空格是為了閱讀的你方便區(qū)分 那如果 計(jì)算機(jī)底層沒有空格他怎么區(qū)分呢
前面說中文太多  1個(gè)字節(jié)肯定表示不夠用    那么可能 你字  這個(gè)中文  需要2個(gè)字節(jié)表示 如下
0000000100000002           
那么我愛你就表示成  00000001 00000002  0000000100000002
我加了空格可能你可以看得懂計(jì)算機(jī)底層沒空格  那么這段可以解釋成  我愛你 也可以解釋成 我愛我愛
因?yàn)樯厦嫖沂?0000001 00000002  0000000100000002 這樣斷句的 如果 我改成
00000001 00000002  00000001 00000002 這樣斷句是不是 就是我愛我愛了 
計(jì)算機(jī)底層存儲(chǔ)可以理解為 00000001000000020000000100000002 所以你不告訴他怎么斷句它也不知道

utf8就是為了解決 unicode存儲(chǔ)可能出現(xiàn)歧義出現(xiàn)的 一種編碼格式。
說到這里 如果你能豁然開朗請給我個(gè)贊 然后接著看。

為什么說utf8這么受歡迎因?yàn)?他是可變長度的 怎么理解呢 看下面

Unicode編碼   UTF-8編碼(二進(jìn)制)
U+0000 – U+007F            0xxxxxxx
U+0080 – U+07FF           110xxxxx 10xxxxxx
U+0800 – U+FFFF           1110xxxx 10xxxxxx 10xxxxxx
U+10000 – U+10FFFF    11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

最開始我看到這個(gè)一臉懵逼褥实,網(wǎng)上好多文章講這個(gè)規(guī)則但是我總是get不到點(diǎn) 
utf8 編碼方式 是對(duì) unicode字符集的一個(gè)存儲(chǔ)到計(jì)算機(jī)2進(jìn)制的實(shí)現(xiàn) 
unicode表示那么多字符了 肯定有 00000001就可以表示的    也有 011111110000110000100多個(gè)字節(jié)表示的字符
utf8規(guī)定了4個(gè)范圍 就是上面的對(duì)照圖  你看到 上面圖中1110xxxx  11110xxx 110xxx 0xxx不知道你發(fā)現(xiàn)規(guī)律沒有
實(shí)際上這些就是為了讓計(jì)算機(jī)底層可以對(duì)2進(jìn)制進(jìn)行區(qū)分當(dāng)發(fā)現(xiàn)0開頭的字節(jié) 就讀1個(gè)字節(jié)就翻譯 
當(dāng)發(fā)現(xiàn)110開頭的字節(jié)就讀兩個(gè)字節(jié)就翻譯   1110 11110依次類推 所以計(jì)算機(jī)底層就知道了讀多少字節(jié)翻譯對(duì)應(yīng)字符了 就不會(huì)出現(xiàn) 我愛你  變成我愛我愛了

為什么規(guī)定了4個(gè)范圍就是為了 unicode 表示少的時(shí)候省點(diǎn)空間 所以根據(jù)前面的區(qū)間 放對(duì)應(yīng)的數(shù)據(jù)到后面xxxx中前面0 110  1110 11110 都是固定的 為了讓計(jì)算機(jī)底層斷句用的 類似我給你 敲的空格 如果utf8你搞明白了  

unicode肯定有對(duì)應(yīng)的換算成2進(jìn)制的數(shù)  對(duì)應(yīng)的向滿足區(qū)間的utf8的那些xxxx中去填就行了  然后會(huì)得到新的2進(jìn)制值這個(gè)時(shí)候就是utf8的編碼值


下面說說gbk編碼 你有的時(shí)候也會(huì)寫成gbk編碼 剛剛我說他不是 字符集么 遍希,他確實(shí)是字符集等曼,但是他定長了啊  他規(guī)定2個(gè)字節(jié) 翻譯一次  即使 是 00000001   也存成00000000 00000001  所以就是空間浪費(fèi) 但是不會(huì)歧義  
所以他也是編碼格式。
utf32也是定長 凿蒜,但是他不是字符集 他是實(shí)現(xiàn)方式對(duì)unicode的實(shí)現(xiàn)方式 對(duì)比utf8缺點(diǎn)就是空間浪費(fèi) 所以不常用禁谦。
講完了希望我的 通俗講解對(duì)你有幫助。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末废封,一起剝皮案震驚了整個(gè)濱河市州泊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌漂洋,老刑警劉巖遥皂,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異刽漂,居然都是意外死亡演训,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門贝咙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來样悟,“玉大人,你說我怎么就攤上這事庭猩】咚” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵蔼水,是天一觀的道長震糖。 經(jīng)常有香客問我,道長徙缴,這世上最難降的妖魔是什么试伙? 我笑而不...
    開封第一講書人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮于样,結(jié)果婚禮上疏叨,老公的妹妹穿的比我還像新娘。我一直安慰自己穿剖,他們只是感情好蚤蔓,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著糊余,像睡著了一般秀又。 火紅的嫁衣襯著肌膚如雪单寂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,682評(píng)論 1 312
  • 那天吐辙,我揣著相機(jī)與錄音宣决,去河邊找鬼。 笑死昏苏,一個(gè)胖子當(dāng)著我的面吹牛尊沸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播贤惯,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼洼专,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了孵构?” 一聲冷哼從身側(cè)響起屁商,我...
    開封第一講書人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎颈墅,沒想到半個(gè)月后蜡镶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡精盅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年帽哑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叹俏。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡妻枕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出粘驰,到底是詐尸還是另有隱情屡谐,我是刑警寧澤,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布蝌数,位于F島的核電站愕掏,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏顶伞。R本人自食惡果不足惜饵撑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望唆貌。 院中可真熱鬧滑潘,春花似錦、人聲如沸锨咙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至粹舵,卻和暖如春钮孵,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背眼滤。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來泰國打工巴席, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人诅需。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓情妖,卻偏偏與公主長得像,于是被迫代替她去往敵國和親诱担。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361

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