gpt4 book ai didi

rust - 如何将字节向量 (u8) 转换为字符串?

转载 作者:行者123 更新时间:2023-11-29 07:40:03 25 4
gpt4 key购买 nike

我正在尝试用 Rust 编写简单的 TCP/IP 客户端,我需要打印出从服务器获得的缓冲区。

如何转换 Vec<u8> (或 &[u8] )到 String

最佳答案

将字节切片转换为字符串切片(假设为 UTF-8 编码):

use std::str;

//
// pub fn from_utf8(v: &[u8]) -> Result<&str, Utf8Error>
//
// Assuming buf: &[u8]
//

fn main() {

let buf = &[0x41u8, 0x41u8, 0x42u8];

let s = match str::from_utf8(buf) {
Ok(v) => v,
Err(e) => panic!("Invalid UTF-8 sequence: {}", e),
};

println!("result: {}", s);
}

转换是就地的,不需要分配。如有必要,您可以通过在字符串切片 (other options are available) 上调用 .to_owned() 从字符串切片创建一个 String

如果您确定字节切片是有效的 UTF-8,并且您不想招致有效性检查的开销,则此函数有一个不安全的版本,from_utf8_unchecked,它具有相同的行为,但跳过了检查。

如果您需要字符串而不是 &str,您也可以考虑使用 String::from_utf8

转换函数的库引用:

关于rust - 如何将字节向量 (u8) 转换为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19076719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com