代码之家  ›  专栏  ›  技术社区  ›  latrasis

使用调试格式时如何编写西里尔文本?

  •  5
  • latrasis  · 技术社区  · 8 年前

    使用时 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}!"
    

    有没有办法 明确肯定 以调试格式正确打印?

    1 回复  |  直到 8 年前
        1
  •  7
  •   DK.    8 年前

    就Rust而言 对的实施 Debug 对于 str 将其自身限制为可打印的ASCII字符,以便无论代码页或输出机制如何,输出都是可读的。

    我不相信你能做什么来改变这个字符串 一般来说 ; 根据具体情况,您可以使用 Display 或者创建一个包装 &str 转发给 陈列 而不是 调试 .