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

时间:2016-02-15 08:46:12

标签: rust

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

let content = request_version.to_string() + &request_length.to_string() + request_json;

2 个答案:

答案 0 :(得分:6)

您可能是用 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

答案 1 :(得分:5)

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

当您对u8数组进行操作时,您希望使用Vec<u8>,而不是数组。如果您想将Stringstr转换为u8数组,则可以使用as_bytes获得切片。如果您想从Vec<u8>获得String,则可以改为使用into_bytes