標籤:htm blank 返回 point tar nbsp 分配 run post
轉於:https://www.cnblogs.com/runwulingsheng/p/5106078.html
博主:你是那天邊突然划過的一道閃電
代碼點:指編碼錶(比如Unicode)中某個字元的代碼值(數字),書寫時前面加U+,比如U+0041是字母A的代碼點
代碼單元:指表示編碼錶字元的最小儲存單元,用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對應數字)
Python:代碼單元、代碼點介紹