什麼是Unicode是什麼是UTF 8

2021-04-06 21:50:04 字數 2719 閱讀 5864

首先說明一下現在常用的一些編碼方案:

1、在中國,大陸最常用的就是gbk18030編碼,除此之外還有gbk,gb2312,這幾個編碼的關係是這樣的。

最早制定的漢字編碼是gb2312,包括6763個漢字和682個其它符號

95年重新修訂了編碼,命名gbk1.0,共收錄了21886個符號。

之後又推出了gbk18030編碼,共收錄了27484個漢字,同時還收錄了藏文、蒙文、維吾爾文等主要的少數民族文字,現在windows平台必需要支援gbk18030編碼。

按照gbk18030、gbk、gb2312的順序,3種編碼是向下相容,同乙個漢字在三個編碼方案中是相同的編碼。

2、台灣,香港等地使用的是big5編碼

3、日本:sjis編碼

如果把各種文字編碼形容為各地的方言,那麼unicode就是世界各國合作開發的一種語言。

在這種語言環境下,不會再有語言的編碼衝突,在同屏下,可以顯示任何語言的內容,這就是unicode的最大好處。

那麼unicode是如何編碼的呢?其實非常簡單。

就是將世界上所有的文字用2個位元組統一進行編碼。可能你會問,2個位元組最多能夠表示65536個編碼,夠用嗎?

南韓和日本的大部分漢字都是從中國傳播過去的,字型是完全一樣的。

比如:「文」字,gbk和sjis中都是同乙個漢字,只是編碼不同而已。

那樣,像這樣統一編碼,2個位元組就已經足夠容納世界上所有的語言的大部分文字了。

unicode的學名是"universal multiple-octet coded character set",簡稱為ucs。

現在用的是ucs-2,即2個位元組編碼,而ucs-4是為了防止將來2個位元組不夠用才開發的。ucs-2也稱為基本多文種平面。

ucs-2轉換到ucs-4只是簡單的在前面加2個位元組0。

ucs-4則主要用於儲存輔助平面,例如unicode 4.0中的第二輔助平面

20000-20fff - 21000-21fff - 22000-22fff - 23000-23fff - 24000-24fff - 25000-25fff -   26000-26fff - 27000-27fff - 28000-28fff - 29000-29fff - 2a000-2afff - 2f000-2ffff

總共增加了16個輔助平面,由原先的65536個編碼擴充套件至將近100萬編碼。

那麼既然統一了編碼,如何相容原先各國的文字編碼呢?

這個時候就需要codepage了。

什麼是codepage?codepage就是各國的文字編碼和unicode之間的對映表。

比如簡體中文和unicode的對映表就是cp936,點這裡檢視官方的對映表。

以下是幾個常用的codepage,相應的修改上面的位址的數字即可。

codepage=936 簡體中文gbk

codepage=950 正體中文big5

codepage=437 美國/加拿大英語

codepage=932 日文

codepage=949 韓文

codepage=866 俄文

codepage=65001 unicode uft-8

最後乙個65001,據個人理解,應該只是乙個虛擬的對映表,實際只是乙個演算法而已。

從936中隨意取一行,例如:

0x9993 0x6abd #cjk unified ideograph

前面的編碼是gbk的編碼,後面的是unicode。

通過查這張表,就能簡單的實現gbk和unicode之間的轉換。

現在明白了unicode,那麼utf-8又是什麼呢?又為什麼會出現utf-8呢?

ascii轉換成ucs-2,只是在編碼前插入乙個0x0。用這些編碼,會包括一些控制符,比如 或 /,這在unix和一些c函式中,將會產生嚴重錯誤。因此可以肯定,ucs-2不適合作為unicode的外部編碼。

因此,才誕生了utf-8。那麼utf-8是如何編碼的?又是如何解決ucs-2的問題呢? 例:

e4 bd a0        11100100 10111101 10100000

這是「你」字的utf-8編碼

4f 60          01001111 01100000

這是「你」的unicode編碼

按照utf-8的編碼規則,分解如下:***x0100 xx111101 xx100000

把除了x之外的數字拼接在一起,就變成「你」的unicode編碼了。

注意utf-8的最前面3個1,表示整個utf-8串是由3個位元組構成的。

經過utf-8編碼之後,再也不會出現敏感字元了,因為最高位始終為1。

以下是unicode和utf-8之間的轉換關係表:

u-00000000 - u-0000007f: 0******x

u-00000080 - u-000007ff: 110***xx 10******

u-00000800 - u-0000ffff: 1110***x 10****** 10******

u-00010000 - u-001fffff: 11110*** 10****** 10****** 10******

u-00200000 - u-03ffffff: 111110xx 10****** 10****** 10****** 10******

u-04000000 - u-7fffffff: 1111110x 10****** 10****** 10****** 10****** 10******

unicode編碼轉換到utf-8,簡單的把unicode位元組流套到x中就變成utf-8了。

HTML語言 什麼是Unicode什麼是UTF 8

unicode和utf 8在製作網頁 中對於很多人不是很了解,到底是什麼樣的概念希望通過本文可以讓大家了解,首先說明一下現在常用的一些編碼方案 1 在中國,大陸最常用的就是gbk18030編碼,除此之外還有gbk,gb2312,這幾個編碼的關係是這樣的。最早制定的漢字編碼是gb2312,包括6763...

什麼是Unicode是什麼是UTF 8是什麼

在這種語言環境下,不會再有語言的編碼衝突,在同屏下,可以顯示任何語言的內容,這就是unicode的最大好處。那麼unicode是如何編碼的呢?其實非常簡單。就是將世界上所有的文字用 個位元組統一進行編碼。可能你會問,個位元組最多能夠表示65536個編碼,夠用嗎?南韓和日本的大部分漢字都是從中國傳播過...

什麼是TPS,什麼是QPS,區別是什麼?

一 tps transactions per second 每秒傳輸的事物處理個數 即伺服器每秒處理的事務數。tps包括一條訊息入和一條訊息出,加上一次使用者資料庫訪問。業務tps caps 每個呼叫平均tps tps是軟體測試結果的測量單位。乙個事務是指乙個客戶機向伺服器傳送請求然後伺服器做出反應...