ascii和unicode文字之間有什麼區別?

您聽說過ASCII和Unicode文字,但它們是什麼?它們有什麼區別?...

ASCII和Unicode都是指文字的數字表示的標準,特別是組成文字的字元。然而,這兩個標準有著顯著的不同,許多屬性反映了它們各自的創作順序。

A set of registration plates with various numbers, letters, and other symbols

美國對宇宙

毫無疑問,美國資訊交換標準碼(ASCII)以英文字母書寫,迎合了美國讀者的需求。它處理非重音字母,如A-Z和A-Z,加上少量標點符號和控制字元。

The standard letters of the Latin alphabet in uppercase and lowercase forms

特別是,如果不透過替換重音字元(例如cafe)來將外來詞英語化,就無法用ASCII表示café等其他語言的外來詞。本地化的ASCII擴充套件是為了滿足各種語言的需求而開發的,但是這些努力使得互操作性變得尷尬,並且明顯地擴充套件了ASCII的功能。

與此相反,通用編碼字符集(Unicode)位於標準的另一端。Unicode試圖迎合世界上儘可能多的書寫系統,以至於它涵蓋了古代語言和每個人最喜歡的一組表達符號emoji。

字符集還是字元編碼?

簡單地說,字符集是字元的選擇(例如,a-Z),而字元編碼是字符集和可以數字表示的值(例如,a=1,B=2)之間的對映。

ASCII標準有效地同時定義了它所表示的字符集和將每個字元對映為數值的方法。

相反,Unicode這個詞在幾個不同的上下文中被用來表示不同的東西。您可以將其視為一個包羅永珍的術語,如ASCII,用於表示字符集和許多編碼。但是,由於有多種編碼方式,Unicode這個術語通常用來指整個字符集,而不是它們的對映方式。

大小

由於其範圍,Unicode代表的字元遠遠多於ASCII。標準ASCII使用7位範圍對128個不同字元進行編碼。另一方面,Unicode是如此之大,以至於我們需要使用不同的術語來討論它!

Unicode迎合了1111998可定址程式碼點。程式碼點大致類似於為字元保留的空間,但情況要比開始深入研究細節時複雜得多!

更有用的比較是當前支援多少指令碼(或編寫系統)。當然,ASCII只處理英文字母,基本上是拉丁或羅馬字母。2020年生產的Unicode版本更進一步:它支援總共154個指令碼。

A grid showing various emojis of human faces with different skin tones

儲存

ASCII的7位範圍意味著每個字元都儲存在一個8位位元組中;在標準ASCII中,備用位是未使用的。這使得大小計算變得簡單:文字的長度(以字元為單位)是檔案的大小(以位元組為單位)。

您可以透過以下bash命令序列來確認這一點。首先,我們建立一個包含12個文字字母的檔案:

$ echo -n 'Hello, world' > foo

要檢查文字是否採用ASCII編碼,我們可以使用file命令:

$ file foofoo: ASCII text, with no line terminators

最後,為了獲得檔案佔用的確切位元組數,我們使用stat命令:

$ stat -f%z foo12

由於Unicode標準處理的字元範圍要大得多,Unicode檔案自然會佔用更多的儲存空間。具體多少取決於編碼。

重複前面的同一組命令,使用不能用ASCII表示的字元,可以得到以下結果:

$ echo -n '€' > foo$ file foofoo: UTF-8 Unicode text, with no line terminators$ stat -f%z foo3

在Unicode檔案中,單個字元佔用3個位元組。注意,bash自動建立了一個UTF-8檔案,因為ASCII檔案不能儲存所選字元(€)。到目前為止,UTF-8是Unicode中最常見的字元編碼;UTF-16和UTF-32是兩種可選編碼,但它們的使用量要少得多。

UTF-8是一種可變寬度編碼,這意味著它對不同的程式碼點使用不同的儲存量。每個程式碼點將佔用1到4個位元組,目的是使更常見的字元需要更少的空間,從而提供一種內建壓縮。缺點是確定給定文字塊的長度或大小要求變得更加複雜。

ascii是unicode,但unicode不是ascii

為了向後相容,前128個Unicode程式碼點表示等效的ASCII字元。由於UTF-8用一個位元組對這些字元進行編碼,因此任何ASCII文字也是UTF-8文字。Unicode是ASCII的超集。

但是,如上所示,許多Unicode檔案不能在ASCII上下文中使用。任何越界的字元都將以意外的方式顯示,通常使用與預期完全不同的替換字元。

現代用法

在大多數情況下,ASCII基本上被認為是一種遺留標準。即使在只支援拉丁語指令碼的情況下,也不需要完全支援Unicode的複雜性,例如,使用UTF-8和利用其ASCII相容性通常更方便。

特別是,應該使用UTF-8儲存和傳輸web頁面,UTF-8是HTML5的預設值。這與早期的web形成了對比,後者在被拉丁1取代之前預設使用ASCII。

正在改變的標準

ASCII的最後一次修訂發生在1986年。

相反,Unicode每年都在更新。新的指令碼、角色,尤其是新的表情符號會定期新增。由於只分配了其中的一小部分,整個字符集在可預見的未來可能會不斷增長。

相關:100個最流行的表情解釋

ascii與unicode

ASCII服務於它的目的已有幾十年了,但是Unicode現在已經有效地取代了它,用於除遺留系統之外的所有實際用途。Unicode更大,因此更具表現力。它代表了一種全球性的協作努力,並提供了更大的靈活性,儘管這是以犧牲一些複雜性為代價的。

  • 發表於 2021-03-28 12:00
  • 閱讀 ( 48 )
  • 分類:科技

你可能感興趣的文章

瓦查爾(varchar)和女巫(nvarchar)的區別

...rchar的語法是varchar[(n | max)]。Varchar儲存的ASCII資料是非Unicode資料,它是正常使用中使用的資料型別。Varchar每個字元使用一個位元組。它還將每個字串的長度儲存在資料庫中。Varchar的資料長度可變,最多可以儲存8000個非Unicode...

  • 發佈於 2020-11-03 03:12
  • 閲讀 ( 50 )

表情符號與表情符號:關鍵區別解釋

... 幾千個emoji都有相應的Unicode編碼,Unicode是一種用於編碼的計算行業標準。信使、社交媒體應用程式和瀏覽器讀取程式碼並向您顯示與之匹配的圖形。不同的軟體可以有稍微不同的圖形,這就是...

  • 發佈於 2021-03-20 11:54
  • 閲讀 ( 51 )

jpg與jpeg:這些影象檔案格式之間有什麼區別?

...的顏色和畫素方面定義導致了編碼器和解碼器(檢視器)之間的相容性問題。 ...

  • 發佈於 2021-03-26 15:54
  • 閲讀 ( 58 )

如何使用這9個函式在php中操作文字

... 請記住,這裡顯示的函式用於ASCII字串,而不是Unicode字串。PHP還支援Unicode和其他多位元組字元編碼方案,並有一組單獨的函式。 ...

  • 發佈於 2021-03-27 01:14
  • 閲讀 ( 50 )

電子郵件和表情符號:unicode如何幫助我們線上交流

... 什麼是unicode碼(unicode)? ...

  • 發佈於 2021-03-28 18:08
  • 閲讀 ( 45 )

什麼是ascii文字?它是如何使用的?

... ASCII得到了極大的擴充套件,並被Unicode所取代,Unicode是一個更全面、更雄心勃勃的標準,下面將對此進行討論。2008年,Unicode在網路應用方面超過了ASCII。 ...

  • 發佈於 2021-03-29 03:18
  • 閲讀 ( 49 )

如何在microsoftexcel中使用trim函式

...文字中使用的標準空間字元。 網頁上的文字例外,其中Unicode不間斷空格字元(十進位制值160)通常用於空格。TRIM不會刪除此字元,因此如果文字中存在此字元,則需要手動刪除它。 相關:什麼是字元編碼像ANSI和Unicode,他們有...

  • 發佈於 2021-03-31 14:28
  • 閲讀 ( 50 )

為什麼記事本對記筆記來說仍然很棒

...(事實上,更古老),只要Windows將其文字檔案寫入ASCII或Unicode等行業標準格式,很有可能在未來的任何計算機平臺上閱讀筆記。其他程式用專有的檔案格式甚至資料庫來編寫特殊格式的註釋,這些檔案在將來可能不容易閱讀。 ...

  • 發佈於 2021-04-02 04:00
  • 閲讀 ( 44 )

intel core i3、i5、i7和x CPU之間有什麼區別?

...,它允許CPU更快地處理指令。 特性細節可能在不同的代之間發生變化。隨著技術的進步,**效能更高的低端零件變得更便宜。這也意味著一旦在核心i3這樣的部件中發現特性,就可以從類中完全消失。 類似CPU的一般效能也會在...

  • 發佈於 2021-04-03 00:52
  • 閲讀 ( 55 )

如何在outlook中更改字元編碼

...作為字元呈現在螢幕上。 相關:什麼是字元編碼像ANSI和Unicode,他們有什麼不同? 到目前為止,非常簡單,特別是如果你認為字母表中只有26個字元,10個數字,還有一些語法標記,比如!或者@。 然而,也有26個大寫字母和更多...

  • 發佈於 2021-04-03 23:47
  • 閲讀 ( 51 )
老張的糖醋排骨
老張的糖醋排骨

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦