MST

星途 面试题库

面试题:Rust字符串字符编码转换基础

在Rust中,假设你有一个UTF - 8编码的字符串`str`,如何将其转换为字节数组`Vec<u8>`,并解释在这个过程中字符编码的处理原理?
50.4万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试

在Rust中,可以使用as_bytes方法将UTF - 8编码的字符串str转换为字节数组Vec<u8>,示例代码如下:

fn main() {
    let s = "你好";
    let bytes: Vec<u8> = s.as_bytes().to_vec();
    println!("{:?}", bytes);
}

字符编码处理原理

  • Rust中的str类型是UTF - 8编码的文本。每个字符可能由1到4个字节表示,具体取决于字符的Unicode码点。
  • as_bytes方法直接返回字符串底层的字节表示,因为str本身就是以UTF - 8编码存储的,所以转换过程只是提取这些已经编码好的字节,并将其放入Vec<u8>中。这意味着字节数组中的内容与原字符串的UTF - 8编码字节序列完全一致。