Avatar ·

如何在 Rust 中将 &str 转换为 &[u8]?

大家好!我刚开始学习 Rust,遇到了一个看似简单但找不到正确解决方案的问题。我需要将一个字符串传递给一个期望字节切片 `&[u8]` 的函数。例如,我正在编写一个简单的文件处理程序:想用 `write` 将字符串写入文件,但它接受 `&[u8]`,而我只有 `&str`。 这是我的代码: ```rust use std::fs::File; use std::io::Write; fn main() { let s = "Привет, мир!"; let mut file = File::create("test.txt").unwrap(); file.write(s).unwrap(); // 错误:expected &[u8], found &str } ``` 我遇到了编译错误:`expected &[u8], found &str`。我知道 Rust 中的字符串是 UTF-8 编码,而字节只是字节序列。但我如何从字符串中获取字节切片?我尝试过使用 `as_bytes()`,但不确定是否正确。此外,`&str` 和 `String` 在这个上下文中有什么区别?如果字符串包含非 ASCII 字符(如我的示例中),该怎么办?