如何在 Rust 中表示这个 utf-8 编码的字符串?

How to represent this utf-8 encoded string in Rust?

在此 RFC 中:https://www.rfc-editor.org/rfc/rfc7616#page-19 第 19 页,有一个以 UTF-8 编码的文本示例:

  J  U+00E4 s  U+00F8 n      D  o  e
  4A C3A4   73 C3B8   6E 20 44  6F 65

如何在 Rust 字符串中表示它?

我尝试了 https://mothereff.in/utf-8 并做了 J[=11=]E4s[=11=]F8nDoe 但没有成功。

你可以参考 Rust By Example 因为 rust 电子书中没有涵盖所有内容

(https://doc.rust-lang.org/stable/rust-by-example/std/str.html#literals-and-escapes)

您可以使用语法 \u{your_unicode}

let unicode_str = String::from("J\u{00E4}s\u{00F8}nDoe");
println!("{}", unicode_str);

"Jäsøn Doe" 应该可以正常工作。 Rust source files are always UTF-8 encoded and a string literal may contain any Unicode scalar value (that is, ,不得使用 UTF-8 编码)。

如果您的编辑器不支持 UTF-8 编码,但支持 ASCII,您可以使用 Unicode 代码点转义,这在 the Rust reference:

中有记录

A 24-bit code point escape starts with U+0075 (u) and is followed by up to six hex digits surrounded by braces U+007B ({) and U+007D (}). It denotes the Unicode code point equal to the provided hex value.

建议正确的语法应该是"J\u{E4}s\u{F8}n Doe"