2016-02-08 18 views
5

Podczas korzystania println! działa zgodnie z oczekiwaniami:Jak pisać tekst cyrylicą podczas korzystania z formatu debugowania?

println!("Привет!"); // Привет! 

z formatem debugowania Jednakże:

println!("{:?}", "Привет!"); // "\u{41f}\u{440}\u{438}\u{432}\u{435}\u{442}!" 

Korzystanie assert!:

assert!("Привет!" != "Привет!") // 'assertion failed: "\u{41f}\u{440}\u{438}\u{432}\u{435}\u{442}!" != "\u{41f}\u{440}\u{438}\u{432}\u{435}\u{442}!" 

Czy istnieje jakiś sposób, aby mieć assert! drukuje prawidłowo w format debugowania?

Odpowiedz

7

Jeśli chodzi o Rust, to ma poprawną wartość. Implementacja Debug dla str ogranicza się do drukowania znaków ASCII, tak aby dane wyjściowe były czytelne niezależnie od strony kodowej lub mechanizmu wyjściowego.

Nie wierzę, że jest coś, co możesz zrobić, aby zmienić to na ciągi ogólnie; w zależności od przypadku, można zamiast tego użyć numeru Display lub utworzyć opakowanie o numerze &str, które przesyła dalej pod numer Display zamiast Debug.