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

Lev*_*han 2 rust

我有一个字符串,我想将其转换为二进制字符串.

let content = request_version.to_string() + &request_length.to_string() + request_json;
Run Code Online (Sandbox Code Playgroud)

小智 7

您可能指的是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);
}
Run Code Online (Sandbox Code Playgroud)

结果:

"Jake" in binary is 01001010 01100001 01101011 01100101
Run Code Online (Sandbox Code Playgroud)


Seb*_*edl 5

在Rust中没有二进制字符串这样的东西.有字节字符串,这是一个用于创建数组的特殊字符u8; 它们与其他阵列无法区分u8.

当你操作数组时u8,你想要使用Vec<u8>,而不是数组.如果要转换a Stringstr数组u8,可以使用切片as_bytes.如果你想Vec<u8>从a 获得String,你可以使用into_bytes.