Avatar ·

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]` ?