标签:
最近在做emoji的开发,需要了解到unicode的知识。学习笔记如下。
1,unicode码是跨平台通用的,它是一个数字,代表了计算机上显示出来的符号(比如:中日韩象形文字、拉丁字符等);
2,unicode用数字0-0x10FFFF来映射这些字符;
3,UTF-8以字节为单位对unicode进行编码。可以使用1~6个字节不等去表示一个unicode码,如下所示。
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开头;
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),需要用四个字节表示。
标签:
原文地址:http://my.oschina.net/u/2291753/blog/472991