Unicode是一種字元編碼方案,它為每種語言中的每個字元都設定了統一唯一的二進位編碼,以實現跨語言、跨平台進行文字轉換、處理的要求
#Unicode意義
Unicode為每個字元提供了一個唯一的數字,不論是什麼平台、不論是什麼程式、不論是什麼語言。它在1994年正式公佈,是電腦領域裡一項業界標準,包括字元集,編碼方案等。 Unicode是為了解決傳統字元編碼方案的限製而產生的,為每種語言中的每個字元都設定了統一唯一的二進位編碼,以實現跨語言、跨平台進行文字轉換、處理的要求。
Unicode編碼的發展
#電腦在設計時採用8個位元(bit)作為一個位元組(byte),所以一個位元組最多能表示256個字符,早期對於使用英文的西方國家來說,一個位元組可以儲存大小寫英文字母、數學和一些符號,因此使用一個位元組來製作碼表(ASCII)。後來電腦傳到了其他的國家,很多國家都是使用自己的語言,例如中文、日文、韓文…語言複雜了,為了解決這個問題,每個國家製定自己的碼表,中國在1980年便制定了GB2312漢字編碼字符集,漢字比英文多很多,一個位元組明顯不夠用,所有都使用2個位元組來編碼。然而不同國家所定義的字元編碼雖然可以使用,但是在不同的國家間卻經常出現不相容的情況。如果電腦想處理多語言環境(使用中文或其他語言)可能存在無法同時支援多語言環境。為了統一所有文字的編碼,產生了Unicode,把所有語言的都統一到一套編碼裡,這樣就不會亂碼了。
Unicode編碼表示
#在表示Unicode字元時,通常會用U 然後緊跟著一組16進位的數字表示一個字符,編碼從U 0000到U FFFF,共支援6萬多個字符,在BMP
以外的字符則需要使用5位或6位16進位來表示。
目前Unicode字元分為17組編排,0x0000至0x10FFFF,每組稱為平面(Plane),每個面擁有65536個碼位,共1114112個。
Unicode就像一張表,包裝所有的字元都寫到表中,每一個字元對應一個數字,稱為碼點(code point),這個數字一般不直接使用,通
過不同的編碼方式來使用
UTF-8、UTF-16、UTF-32就是將數字轉換到程式資料的編碼方案。 UTF是「UnicodeTransformation Format」的縮寫,可以翻譯成
Unicode字元集轉換格式,也就是怎麼將Unicode定義的數字轉換成程式資料
十進位 |
Unicode編碼 |
UTF-8位元組流 |
0-127位元 | 0x000000-0x00007F | 0xxxxxxx(7位元) |
128-2047位元 |
0x000080-0x0007FF | #110xxxxx 10xxxxxx(11位元) |
2048-65535位元 | 0x000800-0x00FFFF | 1110xxxx 10xxxxxx 10xxx(16位元)#xxx |
0x010000-0x10FFFF |
以上是unicode是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!