Comment convertir un vecteur d'octets (Vec<u8>) en chaîne (String) en Rust ?
Bonjour ! Je suis débutant en Rust et j'écris un petit client réseau. Après avoir reçu des données d'un socket, j'obtiens un `Vec` qui contient des données textuelles encodées en UTF-8. J'ai besoin de convertir ce vecteur en une chaîne `String` normale pour l'afficher à l'écran ou la stocker dans une variable.
Voici un exemple de code que j'ai actuellement :
```rust
fn main() {
let bytes: Vec = vec![72, 101, 108, 108, 111]; // "Hello" en UTF-8
// Comment convertir bytes en String ?
// let text: String = ???;
println!("{}", text);
}
```
J'ai essayé d'utiliser `bytes.to_string()`, mais le compilateur se plaint que le trait `ToString` n'est pas implémenté pour `Vec`. J'ai aussi vu des mentions de `String::from_utf8()`, mais je ne suis pas sûr de comment gérer correctement les erreurs si les octets ne sont pas un UTF-8 valide.
Pouvez-vous m'indiquer comment effectuer cette conversion correctement et en toute sécurité ? Que faire si les données peuvent être invalides ? Y a-t-il une différence entre la conversion d'un `Vec` et d'une slice `&[u8]` ?
No answers yet.
Connectez-vous pour laisser une réponse