Python:代码单元、代码点介绍

python

转于:https://www.cnblogs.com/runwulingsheng/p/5106078.html

博主:你是那天边突然划过的一道闪电

代码点:指编码表(比如Unicode)中某个字符的代码值(数字),书写时前面加U+,比如U+0041是字母A的代码点

代码单元:指表示编码表字符的最小存储单元,用16位表示

Unicode 代码点U+0041U+00DFU+6771U+10400
表示字形
UTF-32 代码单元

00000041

000000DF

00006771

00010400

UTF-16 代码单元

0041

00DF

6771

D801DC00

UTF-8 代码单元

41

C39F

E69DB1

F0909080

增补字符,用两个代码单元表示的字符

网摘:

代码点(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对应数字)

代码点:指编码表(比如Unicode)中某个字符的代码值(数字),书写时前面加U+,比如U+0041是字母A的代码点

代码单元:指表示编码表字符的最小存储单元,用16位表示

Unicode 代码点U+0041U+00DFU+6771U+10400
表示字形
UTF-32 代码单元

00000041

000000DF

00006771

00010400

UTF-16 代码单元

0041

00DF

6771

D801DC00

UTF-8 代码单元

41

C39F

E69DB1

F0909080

增补字符,用两个代码单元表示的字符

网摘:

代码点(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对应数字)

以上是 Python:代码单元、代码点介绍 的全部内容, 来源链接: utcz.com/z/387077.html

回到顶部