使用println!
按预期工作时:
println!("Привет!"); // Привет!
但是使用调试格式:
println!("{:?}", "Привет!"); // "\u{41f}\u{440}\u{438}\u{432}\u{435}\u{442}!"
使用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}!"
有没有办法让assert!
以调试格式正确打印?
答案 0 :(得分:7)
就Rust而言, 是正确的。 Debug
str
的实现将自身限制为可打印的ASCII字符,因此无论代码页或输出机制如何,输出都是可读的。
我不相信你可以做些什么来改变字符串一般;根据具体情况,您可以改为使用Display
,或者在&str
周围创建一个转发到Display
而不是Debug
的包装。