ASCII、UTF-8、ISO-8859……你可能已經看到這些奇怪的名字四處飄浮,但它們到底是什麼意思?請繼續閱讀,我們將解釋什麼是字元編碼,以及這些縮寫詞如何與螢幕上顯示的純文字相關。
當我們談到書面語言時,我們會說字母是單詞的組成部分,然後字母就構成了句子、段落等等。字母是代表聲音的符號。當你談論語言時,你談論的是一組聲音,它們組合在一起形成某種意義。每個語言系統都有一套複雜的規則和定義來管理這些意義。如果你有一個詞,除非你知道它來自哪種語言,並且你和說這種語言的人一起使用它,否則它是無用的。
(比較Grantha、Tulu和Malayalam指令碼,圖片來自維基百科)
在計算機世界中,我們使用“字元”這個術語。字元是一種抽象概念,由特定引數定義,但它是意義的基本單位。拉丁字母“A”與希臘字母“alpha”或阿拉伯語字母“alif”不同,因為它們有不同的上下文-它們來自不同的語言,發音略有不同-所以我們可以說它們是不同的字元。字元的視覺表示稱為“字形”,不同的字形集稱為字型。一組字元屬於“集合”或“劇目”
當你輸入一個段落並改變字型時,你不是在改變字母的音標值,而是在改變它們的外觀。這只是表面的(但不是不重要的!)。有些語言,如古埃及語和漢語,有表意文字;這些文字代表的是整個思想而不是聲音,它們的發音可以隨著時間和距離的變化而變化。如果你用一個字元替換另一個字元,你就是在替換一個想法。它不僅僅是改變字母,它改變了一個表意文字。
(圖片來自維基百科)
當你在鍵盤上輸入一些東西,或者載入一個檔案時,計算機如何知道要顯示什麼?這就是字元編碼的目的。計算機上的文字實際上不是字母,而是一系列成對的字母數字值。字元編碼充當一個鍵,使哪些值對應於哪些字元,就像正字法指示哪些聲音對應於哪些字母一樣。莫爾斯電碼是一種字元編碼。它解釋了長單位和短單位(如嘟嘟聲)如何表示字元。在莫爾斯電碼中,字元只是英文字母、數字和句號。有許多計算機字元編碼可以翻譯成字母、數字、重音符號、標點符號、國際符號等。
在這個主題中,通常還使用術語“內碼表”。它們本質上是特定公司使用的字元編碼,通常稍加修改。例如,windows1252內碼表(以前稱為ansi1252)是ISO-8859-1的一種修改形式。它們主要用作一個內部系統,用來表示特定於同一系統的標準和修改的字元編碼。在早期,字元編碼並不那麼重要,因為計算機之間沒有通訊。隨著網際網路的崛起和網路化成為一種普遍現象,它已經成為我們日常生活中越來越重要,我們甚至沒有意識到它。
(圖片來自莎拉索西亞克)
有很多不同的字元編碼,有很多原因。您選擇使用哪種字元編碼取決於您的需要。如果你用俄語交流,使用支援西里爾文的字元編碼是有意義的。如果你用韓語交流,那麼你會想要一些能很好地代表朝鮮文和朝鮮文的東西。如果你是一個數學家,那麼你想要一個能很好地表達所有科學和數學符號,以及希臘和拉丁符號的東西。如果你是一個惡作劇者,也許你會受益於倒置的文字。而且,如果您希望任何給定的人都能檢視所有這些型別的文件,那麼您需要一種非常常見且易於訪問的編碼。
我們來看看一些比較常見的。
(ASCII表格摘錄,圖片來自asciitable.com網站)
(藏文Unicode v4節選自unicode.org)
嗯,ASCII適用於大多數說英語的人,但不適用於其他人。更多的時候你會看到ISO-8859-1,它適用於大多數西歐語言。ISO-8859的其他版本適用於西里爾語、阿拉伯語、希臘語或其他特定的指令碼。但是,如果您想在同一文件或同一網頁上顯示多個指令碼,UTF-8允許更好的相容性。對於使用適當標點符號、數學符號或即興字元(如正方形和複選框)的人來說,它也非常有效。
(一個文件中包含多種語言,螢幕截圖)古吉拉特邦samachar.com)
然而,每一套都有缺點。ASCII的標點符號是有限的,所以它不能很好地進行排版正確的編輯。有沒有從Word中鍵入copy/paste只是為了得到一些奇怪的字形組合?這就是ISO-8859的缺點,或者更準確地說,它假定與作業系統特定的內碼表具有互操作性(我們正在關注您,Microsoft!)。UTF-8的主要缺點是在編輯和釋出應用程式時缺乏適當的支援。另一個問題是瀏覽器通常不解釋,只顯示UTF-8編碼字元的位元組順序標記。這將導致顯示不需要的圖示符。當然,在網頁上宣告一種編碼並使用另一種編碼的字元而不正確地宣告/引用它們,這使得瀏覽器很難正確地呈現它們,搜尋引擎也很難對它們進行適當的索引。
對於你自己的檔案、手稿等,你可以使用任何你需要的東西來完成工作。不過,就網路而言,似乎大多數人都同意使用不使用位元組順序標記的UTF-8版本,但這並不是完全一致的。如您所見,每個字元編碼都有自己的用途、上下文以及優缺點。作為一個終端使用者,您可能不必處理這個問題,但是現在如果您選擇這樣做,您可以向前邁出額外的一步。
...char是最常用的。本文將解釋這兩種資料型別char和varchar是什麼以及它們之間的區別。 什麼是燒焦(char)? char的ISO定義是字元,char資料型別用於儲存字元。Char(n)可以儲存n個固定大小的字元。字元(n)可以容納的最大字元數為2...
...料組成,資料由資料型別定義。資料型別告訴列可以包含什麼型別的值。資料庫表中的每一列都必須具有名稱和資料型別。今天,在資料庫設計中有許多可用的資料型別。在這些資料型別中,varchar和nvarchar用於儲存字串字元。Var...
... 當你對字型或排版沒什麼關係時,私有字元編輯器就是你可能忽略的那些鮮為人知的Windows特性之一。但正如我們將看到的,當我們需要使用這些小工具來完成一些有成效的任務時,它們會回...
ASCII和Unicode都是指文字的數字表示的標準,特別是組成文字的字元。然而,這兩個標準有著顯著的不同,許多屬性反映了它們各自的創作順序。 ...
... 要真正瞭解它們是什麼,以及它們為什麼對當今的通訊如此重要,我們就必須跳進時光機回到19世紀。 ...
...由於一個更強大的新來者,它的使用正在迅速消失。但是什麼是ASCII,它的用途是什麼? ...
...修剪功能為您執行此操作,而不是手動刪除這些功能。 什麼是裝飾功能(the trim function)? TRIM是一個非常簡單的microsoftexcel函式,它可以從特定的文字字串或包含文字的單元格中刪除任何多餘的空格,在單詞之間只留下一個空格...
...其輕量級的簡單性而獨樹一幟:Windows記事本。這就是為什麼它仍然是做筆記的好選擇。 記事本的好處 簡陋的Windows記事本已經伴隨我們35年了,自從windows1.0以來,它被塞進了Windows的每一個版本。它有一個簡單的工作:輕鬆地檢...