微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

对于 u8 字节,是否有像 char::escape_default 这样的函数?

如何解决对于 u8 字节,是否有像 char::escape_default 这样的函数?

Rust 标准库有一个 char::escape_default 函数,如果它是可打印的,它将打印文字字符,或者一个合理的转义序列(\n\u{XXXX} 等)如果不是。

字节有等价物吗?具体来说,如果可打印,我希望它返回文字字节,否则返回 byte 转义序列 (\xNN)。

解决方法

标准库有一个 std::ascii::escape_default 函数可以满足这个用例:

fn main() {
    let x = String::from_utf8(
        "The compiler said “you have an error!”."
            .bytes()
            .flat_map(|b| std::ascii::escape_default(b))
            .collect::<Vec<u8>>(),)
    .unwrap();
    println!("{}",x);
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。