AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

兩位巨佬吃了一頓晚飯,整個互聯網徹底被改變了!

來源: 責編: 時間:2024-07-17 16:54:26 602觀看
導讀1992年9月, 一個周三的下午,貝爾實驗室。 Rob Pike (Go語言發明人之一) 正在操作系統Plan 9 上忙碌,這是繼Unix之后的一個大工程, 馬上就要完工了, 這個時候他突然接到了一個電話。 電話是IBM的人打來的,他們正在奧斯汀參

1992年9月, 一個周三的下午,貝爾實驗室。 dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

Rob Pike (Go語言發明人之一) 正在操作系統Plan 9 上忙碌,這是繼Unix之后的一個大工程, 馬上就要完工了,  這個時候他突然接到了一個電話。 dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

(年輕帥氣的Rob Pike)dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

電話是IBM的人打來的,他們正在奧斯汀參加X/Open 委員會會議, 想請Rob Pike 和 Ken Thomson (Unix發明人) 對他們設計的一個Unicode編碼進行評審。dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

Rob Pike知道X/Open委員會主要負責制定Unix上的標準規范,以便提高應用程序的在不同Unix變體上的移植性。dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

很明顯,這一次會議的主題是:編碼!dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

Rob Pike想到了自己正在忙活的操作系統Plan 9 , 為了支持全世界的語言如英文、中文、韓文、日文、阿拉伯文...... Plan 9 當然要用Unicode 。 dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

(這貨怎么和Go的吉祥物長得如此之像?)dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

大家都知道Unicode只是規定了每個字符用什么編碼,但是沒有規定如何去存儲, 當時Plan 9 采用了一個叫做ISO 10646 UTF編碼, 但是這個編碼實在不怎么樣, 按照Rob Pike的話說:我們恨這個編碼。 dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

Rob 和 Ken 立刻意識到:機會來了 !dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

Rob :我們有豐富的經驗, 為什么不設計一個真正好用的Unicode存儲標準呢? dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

Ken :同意, 我們設計出來,把標準推廣的事情交給X/Open委員會。dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

倆人向IBM的人表達了這個想法, 得到了支持,條件是: 一定要快,快速設計、快速實現。 dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

因為下周一就要投票表決了!dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

對于天才程序員來說,快速、高質量把活兒搞定就是小菜一碟。dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

Ken :還記得《老婆離家三周,我開發了一個操作系統嗎?》dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

他們倆慢悠悠地去餐廳吃飯,在吃飯期間,Ken 和 Rob就把基本的方案給設計出來了,這就是大名鼎鼎的UTF-8。dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

回到貝爾實驗室,他們就把想法寫成了提綱,發給了X/Open 委員會的人, 委員會的回復是: dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

這比我們設計的版本好多了,你們什么時候能實現它? dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

Rob 和Ken 拍著胸脯說:放心吧,下周一肯定能有一個完整的、可以運行的實現。dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

當天晚上(周三),他們倆就卷起袖子干活, Ken 把packing和unpacking的代碼搞定, Rob則去折騰C和圖形庫相關的東西。 dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

周四,所有的代碼都已完成,開始將Plan 9操作系統上的文本文件轉成UTF-8 dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

周五,Plan 9 操作系統就已經運行在UTF-8上面了。 dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

實際花費不到三天!dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

這三天的工作成果最終統治了整個互聯網的編碼標準, 統計顯示, 現在96.8%的Web網站在使用UTF-8。 dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

圖片圖片dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

故事講完了,我們來看看為什么UTF-8能流行起來。 dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

前面說過Unicode只是一個字符集,它規定了每個字符的二進制代碼,例如“碼” , 對應的Unicode 是7801 , 二進制是dzl28資訊網——每日最新資訊28at.com

111 1000 0000 0001dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

需要兩個字節來保存, 如果表示其他更大范圍的字符,可能需要3個字節或者4個字節,甚至更多。 dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

當計算機面對這兩個字節的字節流的時候,就會出現嚴重的問題:計算機怎么知道這兩個字節表示的是一個字符?還是兩個字符?dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

大家知道英文字母用一個字節保存就夠了,如果Unicode規定每個英文字符也用兩個字節或三個字節來保存,那每個英文字母前面勢必要補上0, 文本文件要大兩到三倍。 dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

這是巨大的浪費,肯定不行。 dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

Rob和Ken的設計的UTF-8就比較聰明, 看看這個表:dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

圖片圖片dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

把Unicode 轉換成UTF-8,非常簡單,比如漢字“碼” , Unicode 是7801 , 二進制是 111 1000 0000 0001dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

7801對應上圖的第三行,只要把二進制從右向左填到對應的“模板”中就行,不夠的補零dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

圖片圖片dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

更多的細節就不展開了,關鍵要看看UTF-8有什么好處。dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

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

dzl28資訊網——每日最新資訊28at.com

多字節編碼的每個字節的最高位永遠是 1,而 ASCII 字符編碼的最高位是 0,所以從根本上杜絕了編碼沖突。dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

2. 第一個字節就指明了后續的長度

dzl28資訊網——每日最新資訊28at.com

當程序面對一個字節流的時候,只需要讀出第一個字節最前面有幾個1 ,就知道這個字符的長度,解碼很方便。dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

圖片圖片dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

3. 前綴碼

dzl28資訊網——每日最新資訊28at.com

大家仔細觀察下, UTF-8中沒有任何合法字符是其他字符的前綴, 這樣就帶來了一個好處:支持程序快速地跳過有問題的字節,然后正常解碼。dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

假設有兩個中文 “碼” 和 “農”, 對應的UTF-8編碼為E7A081(碼) and E5869C(農)。 dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

但是網絡傳輸丟失了一些數據,變成了 E781 E5869C   (即“碼”的A0丟失了)dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

現在程序先讀到了E7, 二進制是 1110 0111,它就知道這個字符應該是3字節的, 并且后面的兩個字節都應該以10 開頭。 dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

于是它就要再讀兩個字節, 因為A0這個字節丟失了, 程序讀到了81 和 E5。 dzl28資訊網——每日最新資訊28at.com

程序就發現: dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

81 (二進制10000001) 是符合規范的dzl28資訊網——每日最新資訊28at.com

E5(二進制11100101)的開始兩個bit不是10啊, 這應該是另外一個字符的開始。dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

所以程序就判斷出有字符丟失了,可以丟棄剛讀到的E7 81 , 然后從E5開始讀取, E5 86 9C ,最終顯示“農”字。dzl28資訊網——每日最新資訊28at.com

dzl28資訊網——每日最新資訊28at.com

是不是很巧妙?dzl28資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-101379-0.html兩位巨佬吃了一頓晚飯,整個互聯網徹底被改變了!

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Trip.com QUIC 高可用及性能提升

下一篇: 基于Netty的自研流系統緩存實現挑戰: 內存碎片與OOM困境

標簽:
  • 熱門焦點
  • 一加Ace2 Pro官宣:普及16G內存 引領24G

    一加官方今天繼續為本月發布的新機一加Ace2 Pro帶來預熱,公布了內存方面的信息。“淘汰 8GB ,12GB 起步,16GB 普及,24GB 引領,還有呢?#一加Ace2Pro#,2023 年 8 月,敬請期待。”同時
  • 紅魔電競平板評測:大屏幕硬實力

    前言:三年的疫情因為要上網課的原因激活了平板市場,如今網課的時代已經過去,大家的生活都恢復到了正軌,這也就意味著,真正考驗平板電腦生存的環境來了。也就是面對著這種殘酷的
  • 7月安卓手機性能榜:紅魔8S Pro再奪榜首

    7月份的手機市場風平浪靜,除了紅魔和努比亞帶來了兩款搭載驍龍8Gen2領先版處理器的新機之外,別的也想不到有什么新品了,這也正常,通常6月7月都是手機廠商修整的時間,進入8月份之
  • 5月iOS設備性能榜:M1 M2依舊是榜單前五

    和上個月一樣,沒有新品發布的iOS設備性能榜的上榜設備并沒有什么更替,僅僅只有跑分變化而產生的排名變動,剛剛開始的蘋果WWDC2023,推出的產品也依舊是新款Mac Pro、新款Mac Stu
  • K6:面向開發人員的現代負載測試工具

    K6 是一個開源負載測試工具,可以輕松編寫、運行和分析性能測試。它建立在 Go 和 JavaScript 之上,它被設計為功能強大、可擴展且易于使用。k6 可用于測試各種應用程序,包括 Web
  • 如何正確使用:Has和:Nth-Last-Child

    我們可以用CSS檢查,以了解一組元素的數量是否小于或等于一個數字。例如,一個擁有三個或更多子項的grid。你可能會想,為什么需要這樣做呢?在某些情況下,一個組件或一個布局可能會
  • 重估百度丨“晚熟”的百度云,能等到春天嗎?

    ©自象限原創作者|程心排版|王喻可2016年7月13日,百度云計算戰略發布會在北京舉行,宣告著百度智能云的正式啟程。彼時的會場座無虛席,甚至排隊排到了門外,在場的所有人幾乎都
  • 華為將推出盤古數字人大模型 可幫助用戶12小時完成數字人生成

    在今日舉行的2023年華為云數字文娛AI創新峰會上,華為云全球Marketing與銷售服務總裁石冀琳表示,華為云將在后續推出盤古數字人大模型,可幫助用戶12小
  • 電博會上海爾智家模擬500平大平層,還原生活空間沉浸式體驗

    電博會為了更好地讓參展觀眾真正感受到智能家居的絕妙之處,海爾智家的程傳嶺先生同樣介紹了展會上海爾智家的模擬500平大平層,還原生活空間沉浸式體驗。程傳
Top