在Swift中的String中转换unicode符号(\ uXXXX)

Jan*_*Jan 6 unicode-string swift

我通过REST API收到一个字符串,其中包含\ uXXXX形式的unicode编码字符

例如Ain\u2019t应该是不是

有没有一种很好的方法来转换这些?

谢谢

Leo*_*bus 12

您可以应用字符串转换StringTransform

\n
extension String {\n    var decodingUnicodeCharacters: String { applyingTransform(.init("Hex-Any"), reverse: false) ?? "" }\n}\n
Run Code Online (Sandbox Code Playgroud)\n
\n
let string = #"Ain\\u2019t"#\nprint(string.decodingUnicodeCharacters)  // "Ain\xe2\x80\x99t\\n"\n
Run Code Online (Sandbox Code Playgroud)\n


dfr*_*fri 7

你可以使用\u{my_unicode}:

print("Ain\u{2019}t this a beautiful day")
/* Prints "Ain’t this a beautiful day"
Run Code Online (Sandbox Code Playgroud)

语言指南 - 字符串和字符 - Unicode:

字符串文字可以包含以下特殊字符:

...

  • 一个任意的Unicode标量,写为\ u {n},其中n是1-8位十六进制数,其值等于有效的Unicode代码点