unicode学习笔记

最近在做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),需要用四个字节表示。

你可能感兴趣的:(java,android,unicode,utf-8)