首先說明一下現在常用的一些編碼方案:
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是軟體測試結果的測量單位。乙個事務是指乙個客戶機向伺服器傳送請求然後伺服器做出反應...