捋一捋Unicode和UTF-8兩個(gè)的作用

前言

開發(fā)的過程中經(jīng)常要對文本進(jìn)行編碼之后再傳給服務(wù)器,比如說上傳表情到服務(wù)器,這個(gè)時(shí)候經(jīng)常會用到什么UTF-8編碼,有的人又說什么Unicode編碼,這兩者都是什么之前一直似懂非懂,自作主張的人為是兩種不同的字符編碼方式。經(jīng)過一系列百度之后對這個(gè)問題有個(gè)更成熟的理解,在此做個(gè)筆記。

首先Unicode是一個(gè)字符集,很牛,它包含世界上所有的字符,每個(gè)字符對應(yīng)一個(gè)二進(jìn)制編碼,用兩個(gè)字節(jié)保存。這樣的話所有國家的所有字符都可以在網(wǎng)絡(luò)上自由的傳輸,但是這樣做有個(gè)問題就是本來英文字母A,用ASCII編碼是十進(jìn)制的65,二進(jìn)制的01000001,一個(gè)字節(jié)就可以保存,如果按照Unicode的標(biāo)準(zhǔn)需要兩個(gè)字節(jié)保存,白白浪費(fèi)了一個(gè)字節(jié),這樣肯定不好,如果我是美國人也不想要這樣的結(jié)局,所以就通過人們的智慧就出現(xiàn)了UTF-8。

UTF-8編碼把一個(gè)Unicode字符根據(jù)不同的數(shù)字大小編碼成1-6個(gè)字節(jié),常用的英文字母被編碼成1個(gè)字節(jié),漢字通常是3個(gè)字節(jié),只有很生僻的字符才會被編碼成4-6個(gè)字節(jié)。那么通過UTF-8編碼之后字母A只需要一個(gè)字節(jié)就可以了,這樣美國人就比較開心了,但中國人又不太開心,因?yàn)闈h字通過UTF-8編碼之后通常需要三個(gè)字節(jié),多花了一個(gè)字節(jié),這個(gè)時(shí)候相比中國自己的GB2312編碼方式顯得不是很厚道,但為了世界統(tǒng)一,UTF-8的出現(xiàn)利大于弊,如果每個(gè)國家都按照自己的方式來,互聯(lián)網(wǎng)就亂了。UTF-8編碼有一個(gè)額外的好處,就是ASCII編碼實(shí)際上可以被看成是UTF-8編碼的一部分,所以,大量只支持ASCII編碼的歷史遺留軟件可以在UTF-8編碼下繼續(xù)工作。

UTF-8編碼規(guī)則

1. 單字節(jié)的字符,字節(jié)的第一位設(shè)為0,對于英語文本,UTF-8碼只占用一個(gè)字節(jié),和ASCII碼完全相同;

2. n個(gè)字節(jié)的字符(n>1),第一個(gè)字節(jié)的前n位設(shè)為1,第n+1位設(shè)為0,后面字節(jié)的前兩位都設(shè)為10,這n個(gè)字節(jié)的其余空位填充該字符unicode碼,高位用0補(bǔ)足。

這樣就形成了如下的UTF-8標(biāo)記位:

0xxxxxxx

110xxxxx 10xxxxxx

1110xxxx 10xxxxxx 10xxxxxx

11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

總結(jié)

在計(jì)算機(jī)內(nèi)存中,統(tǒng)一使用Unicode編碼,當(dāng)需要保存到硬盤或者需要傳輸?shù)臅r(shí)候,就轉(zhuǎn)換為UTF-8編碼。所以UTF-8的出現(xiàn)是為了更好的存儲和網(wǎng)絡(luò)傳輸,如果傳輸?shù)膬?nèi)容多為字母,那么這種方式將會節(jié)約不少流量,就醬。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • UTF-8 編碼提供了一種簡便而向后兼容的方法, 使得那種完全圍繞 ASCII 設(shè)計(jì)的操作系統(tǒng), 比如 Unix,...
    謝大見閱讀 4,970評論 0 3
  • 昨天的天空不開心 陰天的臉色 還有些不想給人看見的眼淚 摻合在淅淅瀝瀝的小雨里一起滴落 就連樹葉和月季 也落了一地...
    春雨_6c78閱讀 214評論 0 0
  • 每年的端午假日,海口西海岸假日海灘旅游區(qū)都是人滿為患,海邊無從下腳,如果開車去那你連旅游區(qū)都進(jìn)不去了。 在??谑?..
    媛緣圓閱讀 384評論 0 1
  • 誰把瓶中試劑打破,讓它飄浮在外…… 酸 十年...
    谷嘿嘿嘿閱讀 342評論 0 1
  • 在組織再造上,就是變直線職能金字塔式的組織結(jié)構(gòu)為扁平化的結(jié)構(gòu),減少管理層次,以努力實(shí)現(xiàn)企業(yè)與市場之間的零距離 ...
    huangdan閱讀 404評論 0 0

友情鏈接更多精彩內(nèi)容