3 个稳定版本
1.2.1 | 2024 年 6 月 5 日 |
---|---|
1.2.0 | 2024 年 6 月 1 日 |
1.1.0 | 2024 年 5 月 26 日 |
1.0.2 |
|
1.0.0 |
|
#611 在 文本处理 中
每月 397 次下载
150KB
2.5K SLoC
CESU-8 编码器 & 解码器
在正常 UTF-8 和 CESU-8 编码之间进行转换。
CESU-8 将基本多语言平面之外的字符编码为两个 UTF-16 代理字符,然后重新编码为 3 字节 UTF-8 字符。这意味着 4 字节 UTF-8 序列成为 6 字节 CESU-8 序列。
我们还支持 Java 的修改版 UTF-8 编码,它使用 CESU-8 编码的一种变体,使用两字节序列。
lib.rs
:
实现 CESU-8 兼容编码方案 的库。这是一种非标准的 UTF-8 变体,一些系统内部用于将 UTF-16 数据表示为 8 位字符。
Unicode 联盟不建议使用此编码。它可以用于处理现有 API,但不应用于数据传输或存储。
Java 和 U+0000
Java 使用上述描述的 CESU-8 编码,但有一个区别:空字符 U+0000 被表示为过长的 UTF-8 序列 C0 80
。这由 JavaStr
和 JavaString
支持。
代理对和 UTF-8
UTF-16 编码使用 "代理对" 来表示从 U+10000 到 U+10FFFF 范围内的 Unicode 代码点。这些是范围在 0xD800 到 0xDFFF 之间的 16 位数字。
CESU-8 将这些代理对编码为一个由两套三个字节组成的 6 字节序列。
库功能
Alloc - 启用所有与分配相关的功能。这将允许使用 Cesu8String
和 JavaString
,它们提供与标准库的 String
相似的 API。