簡單理解編碼

適用對象

1于未、計算機相關(guān)類的技術(shù)人(研發(fā)宣吱、測試等)
2蓉冈、對計算機編碼感興趣的其它人士
3、想知道為什么會出現(xiàn)亂碼的人

本文的目的

本文從實用角度出發(fā)钧唐,并不會嚴格按照編碼的規(guī)范來書寫忙灼,如,字符集對應(yīng)的字符編碼名稱并不準確,但不影響讀者對編碼整體的理解该园。主要目的是讓讀者對編解碼有個初步的了解酸舍,以計算機中為什么會出現(xiàn)亂碼。

為什么需要編碼


  計算機能理解的語言是二進制的(0,1)里初,人類的語言(英文父腕、中文以及其它語言)計算機是無法直接理解的,同樣青瀑,計算機的二進制語言,人類也是無法直接理解的萧诫,所以需要進行轉(zhuǎn)換斥难,這個轉(zhuǎn)換的過程就叫編解碼。
  由字符到字節(jié)叫編碼帘饶,由字節(jié)到字符叫解碼哑诊。

字符集與字符編碼

計算機中存儲信息的最小單元(能表示一個具體含義的內(nèi)容,不是最小單位)是字節(jié)及刻,一個字節(jié)包括8個二進制位(最小單位是位bit)镀裤。
  用一個字節(jié)表示世界上所有的語言是不夠的(2的8次方),所以人們又發(fā)明了字符的概念缴饭,用多個字節(jié)表示一個字符暑劝,不同語言有不同的字符集以及與對應(yīng)二進制的轉(zhuǎn)換關(guān)系。
  字符的集合體叫做字符集颗搂,字符與二進制的轉(zhuǎn)換規(guī)則叫做編解碼担猛。很多時候,我們說的ASCII編碼丢氢,其實是包含了ASCII字符集以及其對應(yīng)的字符編碼傅联,只不過很多字符集只有一種編碼,所以才不會有問題疚察,Unicode除外蒸走。

常見的字符集與字符編碼:

| 字符集 |字符編碼 |簡單介紹 |
| ------- :| --------- :| -------- :|
| ASCII | ASCII |單字節(jié),使用了7位 |
| ISO-8859-1 | ISO-8859-1 |也叫Latin-1貌嫡,單字節(jié)比驻,擴展了ASCII,可解碼ASCII |
| GB2312 | GB2312 |小于0XFF用單字節(jié)衅枫,否則用雙字節(jié)|
| GBK | GBK |擴展GB2312嫁艇,規(guī)則同上,可解碼GB2312|
| Unicode | UTF-8 |變長1-6字節(jié)|
| Unicode | UTF-16 |雙字節(jié)|
| Unicode | UTF-32 |定長四字節(jié)|

造成亂碼的原因

通過上面了解了什么叫做編碼弦撩,以及字符集與字符編碼步咪,現(xiàn)在講一下亂碼是因為什么原因造成的。
  以中文字符“我”為例益楼,我的Unicode碼是6211(UTF-16編碼猾漫,十進制是25105)点晴。

1、經(jīng)過GBK編碼悯周,然后再進行ISO-8859-1解碼

  一個字符的“我”字粒督,進行GBK編碼,一個字符采用雙字節(jié)表示(小于0XFF除外)禽翼,然后再進行ISO-8859-1解碼屠橄,一個字節(jié)對應(yīng)一個字符,最終變成了兩個字符闰挡。

2锐墙、經(jīng)過ISO-8859-1編碼再經(jīng)過ISO-8859-1解碼

  進行ISO-8859-1編碼,一個字符采用單字節(jié)表示长酗,6211超出了其編碼范圍溪北,所以用3f表示(未知),然后再進行ISO-8859-1解碼夺脾,一個字節(jié)對應(yīng)一個字符之拨,最終變成了1個字符的“?”咧叭。
  其它編碼流程大體同上蚀乔,還有更復(fù)雜的組合場景,如菲茬,將圖1的結(jié)果再進行GBK編碼與GBK解碼(結(jié)果如何呢乙墙?)。
  總之以上問題生均,都是因為在編碼與解碼的時候沒有使用合適的字符集以及對應(yīng)字符編碼才導(dǎo)致出現(xiàn)了亂碼的場景听想。

總結(jié)

本文首先介紹了什么叫做編碼,為什么我們需要編碼马胧,然后介紹了常見的字符集以及對應(yīng)的字符編碼汉买,最后介紹了亂碼的原因。讀者再理解了以上內(nèi)容之后佩脊,如果在日常工作中再遇到編碼問題蛙粘,可以根據(jù)本文的內(nèi)容進行分析,希望能幫到大家威彰。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末出牧,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子歇盼,更是在濱河造成了極大的恐慌舔痕,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異伯复,居然都是意外死亡慨代,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門啸如,熙熙樓的掌柜王于貴愁眉苦臉地迎上來侍匙,“玉大人,你說我怎么就攤上這事叮雳∠氚担” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵帘不,是天一觀的道長江滨。 經(jīng)常有香客問我,道長厌均,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任告唆,我火速辦了婚禮棺弊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘擒悬。我一直安慰自己模她,他們只是感情好,可當我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布懂牧。 她就那樣靜靜地躺著侈净,像睡著了一般。 火紅的嫁衣襯著肌膚如雪僧凤。 梳的紋絲不亂的頭發(fā)上畜侦,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天,我揣著相機與錄音躯保,去河邊找鬼旋膳。 笑死,一個胖子當著我的面吹牛途事,可吹牛的內(nèi)容都是我干的验懊。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼尸变,長吁一口氣:“原來是場噩夢啊……” “哼义图!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起召烂,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤碱工,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體痛垛,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡草慧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了匙头。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片漫谷。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蹂析,靈堂內(nèi)的尸體忽然破棺而出舔示,到底是詐尸還是另有隱情,我是刑警寧澤电抚,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布惕稻,位于F島的核電站,受9級特大地震影響蝙叛,放射性物質(zhì)發(fā)生泄漏俺祠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一借帘、第九天 我趴在偏房一處隱蔽的房頂上張望蜘渣。 院中可真熱鬧,春花似錦肺然、人聲如沸蔫缸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拾碌。三九已至,卻和暖如春街望,著一層夾襖步出監(jiān)牢的瞬間校翔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工灾前, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留展融,地道東北人。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓豫柬,卻偏偏與公主長得像告希,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子烧给,可洞房花燭夜當晚...
    茶點故事閱讀 42,828評論 2 345

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