成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

兩位巨佬吃了一頓晚飯,整個互聯(lián)網(wǎng)徹底被改變了!

開發(fā) 前端
多字節(jié)編碼的每個字節(jié)的最高位永遠是 1,而 ASCII 字符編碼的最高位是 0,所以從根本上杜絕了編碼沖突。

1992年9月, 一個周三的下午,貝爾實驗室。 

Rob Pike (Go語言發(fā)明人之一) 正在操作系統(tǒng)Plan 9 上忙碌,這是繼Unix之后的一個大工程, 馬上就要完工了,  這個時候他突然接到了一個電話。 

(年輕帥氣的Rob Pike)

電話是IBM的人打來的,他們正在奧斯汀參加X/Open 委員會會議, 想請Rob Pike 和 Ken Thomson (Unix發(fā)明人) 對他們設(shè)計的一個Unicode編碼進行評審。

Rob Pike知道X/Open委員會主要負責(zé)制定Unix上的標(biāo)準(zhǔn)規(guī)范,以便提高應(yīng)用程序的在不同Unix變體上的移植性。

很明顯,這一次會議的主題是:編碼!

Rob Pike想到了自己正在忙活的操作系統(tǒng)Plan 9 , 為了支持全世界的語言如英文、中文、韓文、日文、阿拉伯文...... Plan 9 當(dāng)然要用Unicode 。 

(這貨怎么和Go的吉祥物長得如此之像?)

大家都知道Unicode只是規(guī)定了每個字符用什么編碼,但是沒有規(guī)定如何去存儲, 當(dāng)時Plan 9 采用了一個叫做ISO 10646 UTF編碼, 但是這個編碼實在不怎么樣, 按照Rob Pike的話說:我們恨這個編碼。 

Rob 和 Ken 立刻意識到:機會來了 !

Rob :我們有豐富的經(jīng)驗, 為什么不設(shè)計一個真正好用的Unicode存儲標(biāo)準(zhǔn)呢? 

Ken :同意, 我們設(shè)計出來,把標(biāo)準(zhǔn)推廣的事情交給X/Open委員會。

倆人向IBM的人表達了這個想法, 得到了支持,條件是: 一定要快,快速設(shè)計、快速實現(xiàn)。 

因為下周一就要投票表決了!

對于天才程序員來說,快速、高質(zhì)量把活兒搞定就是小菜一碟。

Ken :還記得《老婆離家三周,我開發(fā)了一個操作系統(tǒng)嗎?》

他們倆慢悠悠地去餐廳吃飯,在吃飯期間,Ken 和 Rob就把基本的方案給設(shè)計出來了,這就是大名鼎鼎的UTF-8。

回到貝爾實驗室,他們就把想法寫成了提綱,發(fā)給了X/Open 委員會的人, 委員會的回復(fù)是: 

這比我們設(shè)計的版本好多了,你們什么時候能實現(xiàn)它? 

Rob 和Ken 拍著胸脯說:放心吧,下周一肯定能有一個完整的、可以運行的實現(xiàn)。

當(dāng)天晚上(周三),他們倆就卷起袖子干活, Ken 把packing和unpacking的代碼搞定, Rob則去折騰C和圖形庫相關(guān)的東西。 

周四,所有的代碼都已完成,開始將Plan 9操作系統(tǒng)上的文本文件轉(zhuǎn)成UTF-8 

周五,Plan 9 操作系統(tǒng)就已經(jīng)運行在UTF-8上面了。 

實際花費不到三天!

這三天的工作成果最終統(tǒng)治了整個互聯(lián)網(wǎng)的編碼標(biāo)準(zhǔn), 統(tǒng)計顯示, 現(xiàn)在96.8%的Web網(wǎng)站在使用UTF-8。 

圖片圖片

故事講完了,我們來看看為什么UTF-8能流行起來。 

前面說過Unicode只是一個字符集,它規(guī)定了每個字符的二進制代碼,例如“碼” , 對應(yīng)的Unicode 是7801 , 二進制是

111 1000 0000 0001

需要兩個字節(jié)來保存, 如果表示其他更大范圍的字符,可能需要3個字節(jié)或者4個字節(jié),甚至更多。 

當(dāng)計算機面對這兩個字節(jié)的字節(jié)流的時候,就會出現(xiàn)嚴重的問題:計算機怎么知道這兩個字節(jié)表示的是一個字符?還是兩個字符?

大家知道英文字母用一個字節(jié)保存就夠了,如果Unicode規(guī)定每個英文字符也用兩個字節(jié)或三個字節(jié)來保存,那每個英文字母前面勢必要補上0, 文本文件要大兩到三倍。 

這是巨大的浪費,肯定不行。 

Rob和Ken的設(shè)計的UTF-8就比較聰明, 看看這個表:

圖片圖片

把Unicode 轉(zhuǎn)換成UTF-8,非常簡單,比如漢字“碼” , Unicode 是7801 , 二進制是 111 1000 0000 0001

7801對應(yīng)上圖的第三行,只要把二進制從右向左填到對應(yīng)的“模板”中就行,不夠的補零

圖片圖片

更多的細節(jié)就不展開了,關(guān)鍵要看看UTF-8有什么好處。

1. 兼容ASCII, 表格中的第一行就是為ASCII所設(shè)。 

多字節(jié)編碼的每個字節(jié)的最高位永遠是 1,而 ASCII 字符編碼的最高位是 0,所以從根本上杜絕了編碼沖突。

2. 第一個字節(jié)就指明了后續(xù)的長度

當(dāng)程序面對一個字節(jié)流的時候,只需要讀出第一個字節(jié)最前面有幾個1 ,就知道這個字符的長度,解碼很方便。

圖片圖片

3. 前綴碼

大家仔細觀察下, UTF-8中沒有任何合法字符是其他字符的前綴, 這樣就帶來了一個好處:支持程序快速地跳過有問題的字節(jié),然后正常解碼。

假設(shè)有兩個中文 “碼” 和 “農(nóng)”, 對應(yīng)的UTF-8編碼為E7A081(碼) and E5869C(農(nóng))。 

但是網(wǎng)絡(luò)傳輸丟失了一些數(shù)據(jù),變成了 E781 E5869C   (即“碼”的A0丟失了)

現(xiàn)在程序先讀到了E7, 二進制是 1110 0111,它就知道這個字符應(yīng)該是3字節(jié)的, 并且后面的兩個字節(jié)都應(yīng)該以10 開頭。 

于是它就要再讀兩個字節(jié), 因為A0這個字節(jié)丟失了, 程序讀到了81 和 E5。 

程序就發(fā)現(xiàn): 

81 (二進制10000001) 是符合規(guī)范的

E5(二進制11100101)的開始兩個bit不是10啊, 這應(yīng)該是另外一個字符的開始。

所以程序就判斷出有字符丟失了,可以丟棄剛讀到的E7 81 , 然后從E5開始讀取, E5 86 9C ,最終顯示“農(nóng)”字。

是不是很巧妙?

責(zé)任編輯:武曉燕 來源: 碼農(nóng)翻身
相關(guān)推薦

2021-05-18 09:39:19

互聯(lián)網(wǎng)操作系統(tǒng)Go

2014-10-08 15:07:45

GITC2014全球互聯(lián)網(wǎng)技術(shù)大會

2014-07-24 15:24:36

互聯(lián)網(wǎng)大數(shù)據(jù)

2023-09-01 10:50:05

2023-06-26 15:41:56

光纖寬帶

2015-06-04 10:21:05

大數(shù)據(jù)改變制造業(yè)

2015-04-02 11:17:20

2019-01-22 10:15:12

互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)

2018-03-22 07:06:20

互聯(lián)網(wǎng)互聯(lián)網(wǎng)++互聯(lián)網(wǎng)

2009-09-22 09:58:12

2010-12-30 09:17:57

PHP程序

2015-06-24 15:35:54

2023-08-18 08:05:36

OpenAI人工智能

2018-01-31 09:25:39

2015-07-28 16:17:32

農(nóng)業(yè)互聯(lián)網(wǎng)

2022-08-03 13:56:10

互聯(lián)網(wǎng)跳槽

2023-04-25 23:45:48

2018-09-29 14:59:06

互聯(lián)網(wǎng)數(shù)據(jù)BAT

2020-03-26 10:33:36

工業(yè)互聯(lián)網(wǎng)概念

2020-03-26 10:25:26

工業(yè)互聯(lián)網(wǎng)IT工業(yè)物聯(lián)網(wǎng)
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 电影午夜精品一区二区三区 | 亚洲福利网 | 国产精品自产av一区二区三区 | 亚洲国产一区在线 | 夜夜爽99久久国产综合精品女不卡 | 国产激情在线播放 | 五月婷婷在线视频 | 久久精品毛片 | 欧美日韩中文国产一区发布 | 一区不卡在线观看 | 国产女人第一次做爰毛片 | 国产中文字幕av | 久夜精品 | 日韩综合一区 | 亚洲综合成人网 | 亚洲人人| 欧美成人免费在线视频 | 欧美视频一级 | 国产伦一区二区三区四区 | 免费成人在线网站 | 久久69精品久久久久久久电影好 | 免费污视频 | 精品一级电影 | 女女百合av大片一区二区三区九县 | 视频一区在线 | 成人不卡 | 91欧美精品成人综合在线观看 | 国产精品伦理一区二区三区 | 成人免费在线观看 | 国产xxxx在线 | 精品二区| av激情在线 | caoporn国产精品免费公开 | 国产精品日韩一区二区 | 一区二区三区 在线 | 久草精品在线 | 久产久精国产品 | 日韩欧美国产一区二区三区 | 久久久久国产一区二区三区四区 | 福利社午夜影院 | 国产精品久久久久久亚洲调教 |