如何在Rust中将字符串转换为二进制字符串?

7
我有一个字符串,想把它转换成二进制字符串。
let content = request_version.to_string() + &request_length.to_string() + request_json;
2个回答

12

你可能是想在类型 String 中表示你的字符串的二进制形式。

fn main() {
    let name = "Jake".to_string();
    let mut name_in_binary = "".to_string();

    // Call into_bytes() which returns a Vec<u8>, and iterate accordingly
    // I only called clone() because this for loop takes ownership
    for character in name.clone().into_bytes() {
        name_in_binary += &format!("0{:b} ", character);
    }
    println!("\"{}\" in binary is {}", name, name_in_binary);
}

这导致:

"Jake" in binary is 01001010 01100001 01101011 01100101

9
在Rust中,不存在二进制字符串这个概念。有的是字节串,它是一种特殊的文字,用于创建u8数组;它们与其他u8数组无法区分。
当您对u8数组进行操作时,应使用Vec<u8>而不是数组。如果要将Stringstr转换为u8数组,则可以使用as_bytes获取一个切片。如果您想从String获取Vec<u8>,则可以使用into_bytes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接