国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

字符編碼問題——GB2312、ASCII、Unicode、utf-8之間的聯(lián)系

2019-11-08 18:50:10
字體:
供稿:網(wǎng)友

計(jì)算機(jī),顧名思義,就是能夠進(jìn)行計(jì)算的機(jī)器。由于計(jì)算機(jī)只能處理數(shù)字,如果要處理文本,就必須先把文本轉(zhuǎn)換為數(shù)字才能處理。最早的計(jì)算機(jī)在設(shè)計(jì)時(shí)采用8個(gè)比特(bit)作為一個(gè)字節(jié)(byte),所以,一個(gè)字節(jié)能表示的最大的整數(shù)就是255(二進(jìn)制11111111=十進(jìn)制255),如果要表示更大的整數(shù),就必須用更多的字節(jié)。比如兩個(gè)字節(jié)可以表示的最大整數(shù)是65535,4個(gè)字節(jié)可以表示的最大整數(shù)是4294967295。


由于計(jì)算機(jī)是美國人發(fā)明的,所以剛開始的時(shí)候,計(jì)算機(jī)中只能存儲(chǔ)127個(gè)字符,也就是大小寫英文字母、阿拉伯?dāng)?shù)字以及一些英文符號,這些字符在計(jì)算中的存儲(chǔ)是作為ASCII碼進(jìn)行存儲(chǔ)的,對應(yīng)著ASCII編碼表。比如說,英文字母“A”對應(yīng)的ASCII碼為65,每個(gè)字符對一個(gè)1個(gè)字節(jié)。


然而隨著計(jì)算機(jī)的普及,全世界各國越來越多的人開始使用計(jì)算機(jī)。所以計(jì)算機(jī)只能存儲(chǔ)英文字母、數(shù)字以及一些常用字符已經(jīng)不能滿足需要了。在中國,計(jì)算機(jī)還需要存儲(chǔ)中文漢字,所以需要對中文漢字進(jìn)行編碼,但是又不能與ASCII中已經(jīng)存在的編碼沖突,所以中國制定了GB2312編碼,每個(gè)中文至少占用2個(gè)字節(jié)。 可是,全世界有上百種語言,日本把日文編到Shift_JIS里,韓國把韓文編到Euc-kr里,各國有各國的標(biāo)準(zhǔn),就會(huì)不可避免地出現(xiàn)沖突,結(jié)果就是,在多語言混合的文本中,顯示出來會(huì)有亂碼。


因此,Unicode應(yīng)運(yùn)而生。Unicode把所有語言都統(tǒng)一到一套編碼里,這樣就不會(huì)再有亂碼問題了。Unicode的標(biāo)準(zhǔn)也在不斷發(fā)展,但最常用的是用兩個(gè)字節(jié)表示一個(gè)字符(如果要用到非常偏僻的字符,就需要4個(gè)字節(jié))。現(xiàn)代操作系統(tǒng)和大多數(shù)編程語言都直接支持Unicode。

所以,在Unicode編碼中,大多數(shù)字符都用兩個(gè)字節(jié)表示,比如字符“A”,用Unicode編碼表示,為00000000 01000001,占用兩個(gè)字節(jié),而用ASCII編碼為01000001,對比后發(fā)現(xiàn),字符“A”的Unicode編碼與ASCII編碼相似,在其ASCII編碼前面補(bǔ)一個(gè)字節(jié)0,就是Unicode編碼。可是新的問題又出現(xiàn)了:如果統(tǒng)一成Unicode編碼,亂碼問題從此消失了。但是,如果你寫的文本基本上全部是英文的話,用Unicode編碼比ASCII編碼需要多一倍的存儲(chǔ)空間,在存儲(chǔ)和傳輸上就十分不劃算。 所以,本著節(jié)約的精神,又出現(xiàn)了把Unicode編碼轉(zhuǎn)化為“可變長編碼”的UTF-8編碼。UTF-8編碼把一個(gè)Unicode字符根據(jù)不同的數(shù)字大小編碼成1-6個(gè)字節(jié),常用的英文字母被編碼成1個(gè)字節(jié),漢字通常是3個(gè)字節(jié),只有很生僻的字符才會(huì)被編碼成4-6個(gè)字節(jié)。如果你要傳輸?shù)奈谋景罅坑⑽淖址肬TF-8編碼就能節(jié)省空間。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 腾冲县| 东海县| 喀喇沁旗| 香港 | 比如县| 天等县| 临武县| 芮城县| 梧州市| 定陶县| 察雅县| 稻城县| 故城县| 旌德县| 长宁县| 南充市| 恩平市| 新丰县| 永昌县| 威宁| 红原县| 南和县| 武威市| 北安市| 内黄县| 常山县| 临沧市| 金寨县| 胶州市| 博白县| 施秉县| 保德县| 苏尼特右旗| 临安市| 景德镇市| 长沙市| 牙克石市| 且末县| 德清县| 布拖县| 盐津县|