UTF-8詳解

UTF-8是一種變長字節的編碼方式,它以8位(1字節)爲單位對Unicode進行編碼。UTF-8理論上最多可以達到6字節長,但目前全世界的字符只需要4字節就可以表示完。

UTF-8規定,對於某一字符的UTF-8編碼,如果只有一個字節則其最高位爲0;如果是多字節,則其第一字節的開頭由N位連續的1加一位0組成,其他字節開頭以“10”開頭,剩餘字節將Unicode的二進制表示從左向右填充。首字節連續的1的個數表示字符編碼所需的字節數。如下所示,

Unicode UTF-8
00 00 ~ 00 7F 0xxxxxxx
00 80 ~ 07 FF 110xxxxx 10xxxxxx
08 00 ~ FF FF 1110xxxx 10xxxxxx 10xxxxxx
1 00 00 ~ 1F FF FF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
20 00 00 ~ 3 FF FF FF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
400 00 00 ~ 7F FF FF FF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

如上表所示,漢字“文”的Unicode編碼爲0x6587,在0800~FFFF之間,所以UTF-8需要用3字節(1110xxxx 10xxxxxx 10xxxxxx)來表示,x使用0x6587的二進制表示來填充。最終,"文"的UTF-8編碼爲111001101001011010000111。

UTF-8兼容ASCII。

UTF-8中英文通常佔3個字節。


P.S. PHP代碼示例

Unicode轉爲UTF-8

UTF-8轉爲Unicode

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章