你知道“UTF-8”是什麼嗎?

你知道“UTF-8”是什么吗?

在做翻譯的時候,可能會遇到文字顯示亂碼,需要使用特定的編碼方式將文件另存。在Windows操作系統上,我們比較常見的操作是將文件使用“UTF-8”編碼另存,如上圖。

但大家知道何為“UTF-8”嗎?

你知道“UTF-8”是什么吗?

以下內容是我在《譯者編程入門指南》一書中新增的內容,供大家參考:

要想讓計算機顯示各種各樣的文字,我們需要將所有文字用“字符集”(Character Set)來組織管理。計算機中設置字符集的目標是對人類語言的所有文字進行編碼,使之可以存儲在計算機中,讓計算機通過文字的編碼來識別文字。

計算機最早在歐美國家廣泛應用,當時主要用於處理英文字母,所以那時的計算機應當能正常顯示英語,為此美國國家標準學會(American National Standard Institute,ANSI)在1967年發佈了美國信息交換標準代碼(AmericanStandard Code for Information Interchange,ASCII),一共規定了128個字符的編碼方式,比如數字“0”就有多種編碼方式,如:00110000(二進制)、48(十進制)、30(十六進制)。許多初次接觸這些知識的同學都會覺得匪夷所思,難道計算機還不認識“0”嗎,為什麼一個簡簡單單的“0”要搞出這麼多種編碼方式。其實這些表示方法都是為了計算機能夠更好得處理字符,而非讓人去記住這些複雜的編碼。

英語字母和標點符號少,128個字符就夠用了,但是像漢語這種有成千上萬個漢字的語言,128個字符就不夠用了。中國國家標準總局在1981年頒佈實施了中華人民共和國國家標準《信息交換用漢字編碼字符集·基本集》,編號為“GB2312-80”,我們常稱之為“GB 2312編碼”,這個字符集中漢字共收錄了6763個,同時收錄了包括一般符號、序號、數字、拉丁字母、日文假名、希臘字母、俄文字母等在內的682個字符,共7445個圖形字符。

世界上國家眾多、語言眾多、文字眾多,每個國家都有自己的字符編碼方式,當一臺計算機上眾多編碼方式混在一起的時候,計算機就糊塗了,所以計算機需要一個全世界統一使用的字符集,涵蓋人類使用的全部字符,並賦予每個字符唯一的編碼。

1987年,三位分別在美國施樂公司(Xerox)和蘋果公司(Apple)工作的工程師Joe Becker、Lee Collins和Mark Davis創建了一家非營利組織“統一碼聯盟”(Unicode Consortium),該聯盟於1991年發佈“統一碼標準”(Unicode Standard)。目前該標準的最新版是2018年6月發佈的11.0.0版,共收錄了137374個字符及其對應的編碼。

這家初創組織發佈了這套希望全球共用的字符集後,起初並未掀起太大的波瀾,因為不同國家的人不知道如何使用這套字符集,大家依然使用屬於自己語言的字符集來存儲電子文檔。直到一個名為“統一碼轉換格式”(Unicode Transfermation Format,UTF)的標準出現,這是一種能讓統一碼標準在計算機中得以實際應用的字符編碼方式(Encoding),目前最常用的一種稱為“UTF-8”(亦可寫作“utf-8”)。如今世界上92.9%的網站都在使用“UTF-8”來對網站中的字符進行編碼。

通過上面這段文字的介紹,大家應該能分清楚ANSI、Unicode、UTF-8的關係了吧?但字符編碼知識遠非這麼簡單,仍有許多與我們每日工作息息相關的知識我還沒有仔細介紹,比如:

“UTF-8”中的“8”什麼意思?第8個版本嗎?

GB2312應該是挺老的標準吧,GBK和GB18030跟它有啥關係?

Unicode不是國家標準化組織(ISO)發佈的標準嗎?

......

如果大家對此有濃厚興趣,可以自己再去查查,我以後有時間再和大家分享!


分享到:


相關文章: