Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?
Athabaska Dick
Ich versuche, einen einfachen TCP / IP-Client in Rust zu schreiben, und ich muss den Puffer ausdrucken, den ich vom Server erhalten habe.
Wie konvertiere ich ein Vec<u8>
(oder ein &[u8]
) in ein String
?
Gavinb
So konvertieren Sie ein Byte-Slice in ein String-Slice (unter der Annahme einer UTF-8-Codierung):
use std::str;
//
// pub fn from_utf8(v: &[u8]) -> Result<&str, Utf8Error>
//
// Assuming buf: &[u8]
//
fn main() {
let buf = &[0x41u8, 0x41u8, 0x42u8];
let s = match str::from_utf8(buf) {
Ok(v) => v,
Err(e) => panic!("Invalid UTF-8 sequence: {}", e),
};
println!("result: {}", s);
}
Die Konvertierung ist vorhanden und erfordert keine Zuordnung. Sie können String
bei Bedarf ein aus dem String-Slice erstellen, indem Sie .to_owned()
das String-Slice aufrufen ( andere Optionen sind verfügbar ).
Die Bibliotheksreferenz für die Konvertierungsfunktion: