什么是码点与代码单元

  • 前言
  • 一、什么是码点
  • 二、什么是代码单元
  • 三、书中实例
  • 四、参考文章

前言

最近在学习Java,参考书籍是《Java核心技术》,在学习到码点和代码单元时,有点搞不懂这两个概念,于是通过查阅资料了解:

一、什么是码点

码点 即代码点,在 Unicode 代码空间中的一个值,取值 0x0 到 0x10FFFF,代表一个字符。也就是一个编码表中的某个字符对应的代码值一个字符就是一个代码点,一个代码点由一个或多个代码单元组成。
Unicode的码点分为17个代码级别,第一个级别是基本的多语言级别,码点从U+0000——U+FFFF,其余的16个级别从U+10000——U+10FFFF,其中包括一些辅助字符。
基本的多语言级别,每个字符用16位表示代码单元,而辅助字符采用连续的一对连续代码单元进行编码。

二、什么是代码单元

代码单元 即在具体编码形式中的最小单位。
比如,UTF-16 中,一个代码单元为 16 位,UTF-8 中一个代码单元为 8 位
一个代码点可能由一个或多个代码单元表示。
在 U+10000 之前的代码点可以由一个 UTF-16 代码单元表示,
U+10000 及之后的代码点要由两个 UTF-16 代码单元表示
在Java中,char类型描述了 UTF-16 编码中的一个代码单元。

三、书中实例

package corejava.v1.ch03;public class CodePoint {public static void main(String[] args) {String greeting = "你好世界Hello";// length方法将返回采用 UTF-16 编码表示给定字符串所需要的代码单元数量int n = greeting.length();System.out.println(n);// 代码点(Code Point):在 Unicode 代码空间中的一个值,取值 0x0 至 0x10FFFF,代表一个字符。// 代码单元(Code Unit):在具体编码形式中的最小单位。// 比如 UTF-16 中一个 code unit 为 16 bits,UTF-8 中一个 code unit 为 8 bits。// 一个 code point 可能由一个或多个 code unit(s) 表示。// 在 U+10000 之前的 code point 可以由一个 UTF-16 code unit 表示,// U+10000 及之后的 code point 要由两个 UTF-16 code units 表示// 在Java中,char类型描述了UTF-16编码中的一个代码单元// 获得码点数量// String API// int codePointCount(int startIndex, int endIndex)// 返回 startIndex 和 endIndex - 1 之间的码点个数int cpCount = greeting.codePointCount(0, greeting.length());System.out.println(cpCount);// 调用 s.charAt(n) 将返回位置 n 的代码单元, n 介于 0 ~ s.length() - 1 之间// String API// char charAt(int index)// 返回给定位置的代码单元,除非对底层的代码单元感兴趣,否则不需要调用这个方法char first = greeting.charAt(0); // first is '你'char last = greeting.charAt(greeting.length() - 1); // last is 'o'System.out.println(first + "..." + last);// 得到第 i 个码点, 假设 i 为 3// String API// int offsetByCodePoints(int startIndex, int cpCount)// 返回从 startIndex 码点开始, cpCount 个码点后的码点索引int index = greeting.offsetByCodePoints(0, 3);// String API// int codePointAt(int index)// 返回从指定位置开始的码点int cp = greeting.codePointAt(index);System.out.println(index + "..." + cp);String sentence = "												

什么是码点与代码单元相关推荐

  1. java unicode补充字符带来的码点和代码单元问题

    码点与代码单元 java string有两种判定字符的方式,一种是以码点,一种以代码单元,简单讲,码点就是真正的字符,代码单元是按大小即char型长度2个字节划分字符串. 所以length和chara ...

  2. Java核心技术卷I基础知识3.6.6 码点与代码单元

    3.6.6 码点与代码单元 Java字符串由char值序列组成.从3.3.3节"char类型"已经看到,char数据类型是一个采用UTF-16编码表示Unicode码点的代码单元. ...

  3. 3.6.6 码点与代码单元

    Java字符串由char值序列组成.char数据类型是一个采用UTF-16编码表示Unicode码点的代码单元.大多数的常用Unicode字符使用一个代码单元就可以表示,而辅助字符需要一对代码单元表示 ...

  4. java代码点_Java中码点和代码单元

    Java中码点和代码单元 前言 码点和代码单元这两个概念还是在<Java核心技术 卷一>发现的,这也是我看过这本书里面前五章中比较有用的一个知识点(PS:毕竟Java开发都一年了,基础应用 ...

  5. Java中码点和代码单元

    Java中码点和代码单元 前言 码点和代码单元这两个概念还是在<Java核心技术 卷一>发现的,这也是我看过这本书里面前五章中比较有用的一个知识点(PS:毕竟Java开发都一年了,基础应用 ...

  6. Java码点和代码单元的理解

    Java码点和代码单元的理解 书本中的相关概念 码点 定义 码点(code point)是指与一个编码表中的某个字符对应的代码值 代码单元 定义 在基本多语言平面中,每个字符用16位表示,通常称为代码 ...

  7. 字符串的相关操作(定义、拼接、比较、判断字符串是否为空串或null串、查看码点或代码单元、遍历字符串等)

    本文为原创文章,转载请注明出处!! https://blog.csdn.net/featureA/article/details/123476271 ------------------------- ...

  8. String类型的字符长度(码点/代码单元的区别)

    查看String的源码可以发现它以一个char类型的数组保存字符串的,而String.length()方法返回的也是这个char数组的长度. 那么,这个长度和"字符"长度有什么关系 ...

  9. core java 9 代码_Java Core 学习笔记——3.char/Unicode/代码点/代码单元

    通用字符集(UCS) UCS是由ISO制定的ISO 10646(或称ISO/IEC 10646)标准所制定的标准字符集. UCS包括了其他所有的字符集(包含了已知语言的所以字符). ISO/IEC 1 ...

最新文章

  1. vs2017的一件奇葩事
  2. Keras保存和载入训练好的模型和参数
  3. IDM——服务器响应显示您没有权限下载此文件(百度网盘下载问题)
  4. 定时任务提交spark到yarn出现一直accepted以及yarn出现unhealthy情况
  5. mybatis学习笔记-02-第一个mybatis程序
  6. linux连接外部库时候编译,交叉编译时如何使用外部库?
  7. 24点游戏详细截图介绍以及原型、Alpha、Beta对比
  8. 如何套用模板绘制生产管理流程图
  9. 计算机网络 第三章 数据链路层
  10. Ceph块设备(RBD)常用命令
  11. 《计算机网络 自顶向下方法》(第7版)答案(第二章)(一)
  12. 《技术人创业攻略》-用技术改变世界!
  13. Mining Hero於ETHDenver峰會提交專案,整合IPFS應用場景
  14. 修改无法启动的容器中的配置文件(elasticsearch)
  15. P2615 [NOIP2015 提高组] 神奇的幻方
  16. python绘制七巧板_CSS3制作七巧板动画
  17. 网络异常处理,ping测试报:一般故障
  18. 饭否android客户端,fanfou(饭否) android客户端 代码学习二
  19. zsh和oh-my-zsh的一些好用的主题及插件
  20. 借助AI生成PPT的网站

热门文章

  1. 12种打电话占便宜省钱方案
  2. IT运维的学习流程与方向
  3. 进销存行业的“年中总结”——库存盘点篇
  4. 学习工作必备的十二款常用在线工具,看完你不收藏算我输【强烈推荐】
  5. openmv ide 2.6.5下载
  6. 视通助力中国航天某院多媒体会议室建设
  7. R语言绘制瑞利分布和指数分布,并为瑞利分布着不同色
  8. 《自然语言处理实战入门》第三章 :中文分词原理及相关组件简介 ---- 序列标注(词性标注)
  9. 嵌入方法在推荐系统中的应用
  10. 牟长青:浅谈如何提高网站PR值