问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于Java核心技术书中的代码点和代码单元是怎么理解的呢?

发布网友 发布时间:2022-05-05 06:42

我来回答

3个回答

热心网友 时间:2023-10-13 13:14

代码单元”是各个编码形式中的单个单元。代码单元的大小等效于特定编码的位数测量单位:

UTF-8 中的代码单元由 8 位组成。
UTF-16 中的代码单元由 16 位组成。
UTF-32 中的代码单元由 32 位组成。
GB18030 中的代码单元由 8 位组成。

每个代码点中的代码单元数
映射到代码点所需的代码单元数根据编码形式而有所不同:

UTF-8
在 UTF-8 中,因为代码单元较小的缘故,每个代码点常常被映射到多个代码单元。代码点将被映射到一个、两个、三个或四个代码单元。

UTF-16
UTF-16 的代码单元大小是 8 位代码单元的两倍。所以,标量值小于 U+10000 的代码点被编码到单个代码单元中。

对于标量值大于或等于 U+10000 的代码点,每个代码点需要两个代码单元。在 UTF-16 中,这些代码单元对有一个独特的术语:“Unicode 代理对”。

热心网友 时间:2023-10-13 13:14

附上其中几个用到的API的使用方法,希望对楼主有用:
public int codePointCount(int beginIndex,
int endIndex)返回此序列指定文本范围内的统一代码点。文本范围始于指定的 beginIndex,并扩展到索引 endIndex - 1 上的 char。因此文本范围的长度(char 形式)为 endIndex-beginIndex。该序列中每个未配对的代理项都被作为一个代码点进行计数。

public int offsetByCodePoints(int index,

int codePointOffset)返回此 String 中从给定的 index 处偏移 codePointOffset 个代码点的索引。文本范围内由 index 和 codePointOffset 给定的未配对代理项各计为一个代码点。

int codePointAt(int index)
返回指定索引处的字符(Unicode 代码点)。

热心网友 时间:2023-10-13 13:15

String greeting = "Hello";
int n = greeting.length();//求出字符串“Hello”的字符数=5
int cpCount =greeting.codePointCount(0,greeting.length());//返回greeting的指定文本范围中的 Unicode 代码点数。
char first =greeting.char(0);//起始字符是H
char last = greeting.char(4)//第五个字符是o
int index =greeting.offsetbyCodePoints(0,i);// 返回此greeting中从给定的0处偏移i个代码点的索引
int cp = greeting.codePointAt(index); //回指定索引处(上面的index)的字符(Unicode 代码点)。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
抖音弹幕怎么关掉?怎么关闭抖音弹幕? 惠普LaserJet P3005D是否支持B5纸的双面打印? word打印出图片总是缺一部分怎么办-word打印图片不完整怎么解决_百度... 理想one哪里产的车辆? 抚州抚州ONE在哪里? one地址在哪里? 如何在图片上写字(如何在图片上添加文字) 网商贷为什么钱没到账 高级经济师职称怎么评 高级经济师需要评审吗 世界上最大的潜艇是哪国造的? java中string类offsetByCodePoint()和codePointAt()都有哪些功能,都怎么用 java代码点数 无线路由看什么参数才知道它穿墙能力跟发射覆盖范围? 为什么家里的路由器穿墙能力差 请问无线路由器的穿墙能力和传输速率有关系吗 怎么每天免费领支付宝红包呢?看别人这样做自己不会弄啊,大佬大佬🙏 无线路由器 的距离和穿墙性能由什么决定 无线路由器的信号强度和穿墙能力是否和无线传输速率有关? 支付宝刷红包 无线路由器的穿墙性能由什么决定? 自己的支付宝口令红包自己能领取吗?,一个支付宝口令或者二维码可以无限使用吗? 鼻子骨头歪了会有哪些症状 鼻塞,不通气。鼻子里面骨歪了,我不相信 鼻子里面的骨头歪了是怎么回事 鼻子天生就鼻梁骨歪能不能通过手术矫正过 办理邮政信用卡的时候告诉我没有年费,激活后一直未使用,2年后告诉我要收取年费,要怎么投诉? 我的保险合同上面是不是重疾险捆绑的寿险? iphone用什么音频芯片 重大疾病保险需绑定销售? 目前,世界上最大的核潜艇是哪个国家的?有多大? 检测文本中是否有emoji字符以及过滤 世界最大体积和吨位潜艇是哪个 python 怎么过滤 emoji 表情符号 世界上最大的潜水艇是什么 如题 android 判断text 是否含有emoji 目前世界上最大的现役常规潜艇是哪一国家的 微信公众平台活动用户昵称插入数据库一直报错 俄罗斯“世界最大核潜艇”首次出海,这艘潜艇有哪些功能? 请问世界上最大的核动力潜水艇是哪个? 世界上最大的弹道核潜艇是哪个国家的?是什么型号? java String codePointBefore java提问。string stringbuffer的方法都得记下来嘛 java中如何比较特殊符号的字符串1.0.0和1.1.0哪个大? 世界上最厉害的潜艇是那几个国家. 我用我的银行卡在我朋友淘宝上买东西 买完之后银行卡怎么绑定他手机号码上了 怎么在弄我手机号码上 世界上最大的潜水艇是什么 ??如题 谢谢了 哪个国家潜艇最强? 财富通是哪个银行的啊? 世界上最大的核潜艇大约有多少吨?