unicode学习笔记

最近在做emoji的开发,需要了解到unicode的知识。学习笔记如下。

1,unicode码是跨平台通用的,它是一个数字,代表了计算机上显示出来的符号(比如:中日韩象形文字、拉丁字符等);

2,unicode用数字0-0x10FFFF来映射这些字符;

3,UTF-8以字节为单位对unicode进行编码。可以使用1~6个字节不等去表示一个unicode码,如下所示。

Unicode/UCS-4bit数UTF-8byte数
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),需要用四个字节表示。

转载于:https://my.oschina.net/u/2291753/blog/472991

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值