2 个版本
0.1.1 | 2023 年 12 月 1 日 |
---|---|
0.1.0 | 2023 年 12 月 1 日 |
0.0.1 |
|
#812 在 文本处理
10,567 每月下载量
用于 73 个 crates (2 直接)
50KB
987 代码行
escape-bytes
转义非可打印 ASCII 字符的字节。
确切规则是
- 空字符被转义为
\0
。 - 制表符被转义为
\t
。 - 换行符被转义为
\n
。 - 回车符被转义为
\r
。 - 反斜杠被转义为
\\
。 - 可打印 ASCII 范围内的任何字符(
0x20
..=0x7e
)不会被转义。 - 其他任何字符将以十六进制形式转义,格式为
\xNN
。
适用于字节序列不合法 ASCII 或 UTF-8 但需要以半人类可读形式存储,而只允许 ASCII 或 UTF-8 的情况。
示例
转义
let str = b"hello\xc3world";
let escaped = escape_bytes::escape(str);
assert_eq!(escaped, br"hello\xc3world");
反转义
let escaped = br"hello\xc3world";
let unescaped = escape_bytes::unescape(escaped)?;
assert_eq!(unescaped, b"hello\xc3world");
许可证:Apache-2.0
lib.rs
:
转义非可打印 ASCII 字符的字节。
确切规则是
- 空字符被转义为
\0
。 - 制表符被转义为
\t
。 - 换行符被转义为
\n
。 - 回车符被转义为
\r
。 - 反斜杠被转义为
\\
。 - 可打印 ASCII 范围内的任何字符(
0x20
..=0x7e
)不会被转义。 - 其他任何字符将以十六进制形式转义,格式为
\xNN
。
适用于字节序列不合法 ASCII 或 UTF-8 但需要以半人类可读形式存储,而只允许 ASCII 或 UTF-8 的情况。
示例
转义
let str = b"hello\xc3world";
let escaped = escape_bytes::escape(str);
assert_eq!(escaped, br"hello\xc3world");
反转义
let escaped = br"hello\xc3world";
let unescaped = escape_bytes::unescape(escaped)?;
assert_eq!(unescaped, b"hello\xc3world");