代码单元与代码点
2016-01-06 16:22
127 查看
代码点指编码表(比如Unicode)中某个字符的代码值(数字),书写时前面加U+,比如U+0041是字母A的代码点
java中的代码单元指表示编码表字符的最小存储单元,用16位表示
增补字符,用两个代码单元表示的字符
网摘:
"代码点(Code Point)就是指Unicode中为字符分配的编号,一个字符只占一个代码点,例如我们说到字符“汉”,它的代码点是U+6C49.代码单元(Code Unit)则是针对编码方法而言,它指的是编码方法中对一个字符编码以后所占的最小存储单元。例如UTF-8中,代码单元是一个字节,因为一个字符可以被编码为1个,2个或者3个4个字节;在UTF-16中,代码单元变成了两个字节(就是一个char),因为一个字符可以被编码为1个或2个char(你找不到比一个char还小的UTF-16编码的字符,嘿嘿)。说得再罗嗦一点,一个字符,仅仅对应一个代码点,但却可能有多个代码单元(即可能被编码为2个char)。
以上概念绝非学术化的绕口令,这意味着当你想以一种统一的方式指定自己使用什么字符的时候,使用代码点(即你告诉你的程序,你要用Unicode中的第几个字符)总是比使用代码单元更好(因为这样做的话你还得区分情况,有时候提供一个16进制数字,有时候要提供两个)。"
想找到第i个代码点,使用下列语句
int index = greeting.offsetByCodePoints(0,i); //得到0开始便宜i个代码点的索引值(数字)
int cp = greeting.codePointAt(index); // 返回char值(unicode对应数字)
java中的代码单元指表示编码表字符的最小存储单元,用16位表示
Unicode 代码点 | U+0041 | U+00DF | U+6771 | U+10400 | ||||||||||
表示字形 | ||||||||||||||
UTF-32 代码单元 |
|
|
|
| ||||||||||
UTF-16 代码单元 |
|
|
|
| ||||||||||
UTF-8 代码单元 |
|
|
|
|
网摘:
"代码点(Code Point)就是指Unicode中为字符分配的编号,一个字符只占一个代码点,例如我们说到字符“汉”,它的代码点是U+6C49.代码单元(Code Unit)则是针对编码方法而言,它指的是编码方法中对一个字符编码以后所占的最小存储单元。例如UTF-8中,代码单元是一个字节,因为一个字符可以被编码为1个,2个或者3个4个字节;在UTF-16中,代码单元变成了两个字节(就是一个char),因为一个字符可以被编码为1个或2个char(你找不到比一个char还小的UTF-16编码的字符,嘿嘿)。说得再罗嗦一点,一个字符,仅仅对应一个代码点,但却可能有多个代码单元(即可能被编码为2个char)。
以上概念绝非学术化的绕口令,这意味着当你想以一种统一的方式指定自己使用什么字符的时候,使用代码点(即你告诉你的程序,你要用Unicode中的第几个字符)总是比使用代码单元更好(因为这样做的话你还得区分情况,有时候提供一个16进制数字,有时候要提供两个)。"
想找到第i个代码点,使用下列语句
int index = greeting.offsetByCodePoints(0,i); //得到0开始便宜i个代码点的索引值(数字)
int cp = greeting.codePointAt(index); // 返回char值(unicode对应数字)
相关文章推荐
- AVA的面向对象编程-笔记
- (Java基础--反射)构造方法的反射应用
- github常用技巧记录
- java 中的多态的演示
- 【C++11新特性】 auto关键字
- Python urllib2 使用
- 静态库单例问题
- struts2自带拦截器
- 借助github搭建自己的博客
- 实例导航条代码
- *圣思园java se培训总结(103-)(线程间相互作用)
- c++获取随机数
- java中的方法重载 overload
- matlab中figure的坐标轴label、title、xticklabel的旋转
- C++中BMP文件头函数编写(24bit真彩、8位灰度和8位伪彩色)
- Java8 lambda表达式的实现探索
- Java Script 第十一节课 Java Script的中的函数-通过function关键
- 学习资料网址
- 简单 python 爬虫(一)
- (Java基础--反射)理解反射的概念