最近在作emoji的開發,須要瞭解到unicode的知識。學習筆記以下。java
1,unicode碼是跨平臺通用的,它是一個數字,表明了計算機上顯示出來的符號(好比:中日韓象形文字、拉丁字符等);學習
2,unicode用數字0-0x10FFFF來映射這些字符;編碼
3,UTF-8以字節爲單位對unicode進行編碼。可使用1~6個字節不等去表示一個unicode碼,以下所示。code
Unicode/UCS-4 | bit數 | UTF-8 | byte數 |
0000~007F |
0~7 |
0XXX XXXX |
1 |
0080~07FF |
8~11 |
110X XXXX 10XX XXXX |
2 |
0800~FFFF |
12~16 |
1110XXXX 10XX XXXX 10XX XXXX |
3 |
1 0000~1F FFFF |
17~21 |
1111 0XXX 10XX XXXX 10XX XXXX 10XX XXXX |
4 |
20 0000~3FF FFFF |
22~26 |
1111 10XX 10XX XXXX 10XX XXXX 10XX XXXX 10XX XXXX |
5 |
400 0000~7FFF FFFF |
27~31 |
1111 110X 10XX XXXX 10XX XXXX 10XX XXXX 10XX XXXX 10XX XXXX |
6 |
4,softbank的encode是2個字節,以E開頭;
unicode
5,java中的String使用UTF-16方式存儲;開發
6,UTF-16中,字符值在U+0000到U+FFFF(注意U+D800到U+DBFF無定義)之間的字符(也叫作BMP, Basic Multilingual Plane),直接用兩個字節表示。 字符值在U+10000到U+10FFFF(共有0xFFFFF個字符)之間的字符(也叫作增補字符集, supplementary characters),須要用四個字節表示。it