程序員的自我修養(yǎng)-字符編碼

看了阮一峰的Blog(很久之前的),突然就發(fā)現(xiàn)這么一個(gè)非常常見(jiàn)的問(wèn)題捣鲸,常常被我視而不見(jiàn)瑟匆。而且我相信,有很大一部分同學(xué)應(yīng)該和我一樣栽惶,對(duì)此模棱兩可愁溜〖残幔或許在很久之前在某次面試或考試之前準(zhǔn)備過(guò)如此“冷門(mén)”的知識(shí),現(xiàn)在早已拋之腦后冕象。其實(shí)我們經(jīng)常會(huì)遇到“?????????”和類似“燙燙燙燙”的玩意代承,對(duì)于這樣經(jīng)常造訪的老朋友背后的技術(shù)細(xì)節(jié)我們有必要了解。

這里我偷懶引用兩篇寫(xiě)的非常好的Blog作為內(nèi)容渐扮,因?yàn)閷?xiě)的太清楚论悴,太易懂。本著不重復(fù)發(fā)明輪子的原則墓律,我就借花獻(xiàn)佛膀估。

阮一峰字符編碼常識(shí)及問(wèn)題解析 閱讀完后一定會(huì)對(duì)編碼有了基本的了解,同時(shí)對(duì)目前最為主流的utf-8耻讽,有清晰的認(rèn)識(shí)察纯。這樣以后再處理亂碼問(wèn)題,就比起之前更游刃有余针肥。

其中對(duì)于utf-8 部分捐寥,兩篇描述各有側(cè)重,我做個(gè)摘要

UTF-8是Unicode的實(shí)現(xiàn)方式之一祖驱。
UTF-8最大的一個(gè)特點(diǎn),就是它是一種變長(zhǎng)的編碼方式瞒窒。它可以使用1~4個(gè)字節(jié)表示一個(gè)符號(hào)捺僻,根據(jù)不同的符號(hào)而變化字節(jié)長(zhǎng)度。
UTF-8的編碼規(guī)則很簡(jiǎn)單崇裁,只有二條:
1)對(duì)于單字節(jié)的符號(hào)匕坯,字節(jié)的第一位設(shè)為0,后面7位為這個(gè)符號(hào)的unicode碼拔稳。因此對(duì)于英語(yǔ)字母葛峻,UTF-8編碼和ASCII碼是相同的。
2)對(duì)于n字節(jié)的符號(hào)(n>1)巴比,第一個(gè)字節(jié)的前n位都設(shè)為1术奖,第n+1位設(shè)為0,后面字節(jié)的前兩位一律設(shè)為10轻绞。剩下的沒(méi)有提及的二進(jìn)制位采记,全部為這個(gè)符號(hào)的unicode碼。
以漢字"嚴(yán)"為例政勃,演示如何實(shí)現(xiàn)UTF-8編碼唧龄。
已知"嚴(yán)"的unicode是4E25(100111000100101),根據(jù)上表奸远,可以發(fā)現(xiàn)4E25處在第三行的范圍內(nèi)(0000 0800-0000 FFFF)既棺,因此"嚴(yán)"的UTF-8編碼需要三個(gè)字節(jié)讽挟,即格式是"1110xxxx 10xxxxxx 10xxxxxx"。然后丸冕,從"嚴(yán)"的最后一個(gè)二進(jìn)制位開(kāi)始耽梅,依次從后向前填入格式中的x,多出的位補(bǔ)0晨仑。這樣就得到了褐墅,"嚴(yán)"的UTF-8編碼是"11100100 10111000 10100101",轉(zhuǎn)換成十六進(jìn)制就是E4B8A5洪己。
摘自阮一峰-字符編碼筆記:ASCII妥凳,Unicode和UTF-8

其中幾個(gè)要點(diǎn)

  1. utf-8是可變長(zhǎng)的答捕,目前使用廣泛逝钥,而且兼容ASCII
  2. 注意填寫(xiě)漢字編碼時(shí)是從低位往高位,保證高位多余位置0

參考blog:
阮一峰-字符編碼筆記:ASCII拱镐,Unicode和UTF-8
字符編碼常識(shí)及問(wèn)題解析

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末艘款,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子沃琅,更是在濱河造成了極大的恐慌哗咆,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件益眉,死亡現(xiàn)場(chǎng)離奇詭異晌柬,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)郭脂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)年碘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人展鸡,你說(shuō)我怎么就攤上這事屿衅。” “怎么了莹弊?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵涤久,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我忍弛,道長(zhǎng)拴竹,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任剧罩,我火速辦了婚禮栓拜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己幕与,他們只是感情好挑势,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著啦鸣,像睡著了一般潮饱。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上诫给,一...
    開(kāi)封第一講書(shū)人閱讀 48,970評(píng)論 1 284
  • 那天香拉,我揣著相機(jī)與錄音,去河邊找鬼中狂。 笑死凫碌,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的胃榕。 我是一名探鬼主播盛险,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼勋又!你這毒婦竟也來(lái)了苦掘?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤楔壤,失蹤者是張志新(化名)和其女友劉穎鹤啡,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蹲嚣,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡揉忘,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了端铛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡疲眷,死狀恐怖禾蚕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情狂丝,我是刑警寧澤换淆,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站几颜,受9級(jí)特大地震影響倍试,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蛋哭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一县习、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦躁愿、人聲如沸叛本。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)来候。三九已至,卻和暖如春逸雹,著一層夾襖步出監(jiān)牢的瞬間营搅,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工梆砸, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留转质,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓辫樱,卻偏偏與公主長(zhǎng)得像峭拘,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子狮暑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

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