[swift]我收到格式不正确的 unicode 字符串中

标签: Xcode ios Swift
发布时间: 2017/3/6 23:04:34
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我正与一个网络 API 给我类似于以下内容的字符串︰

"Eat pok\u00e9."

Xcode 抱怨

Unicode 转义后的大括号中的预期十六进制代码

我的理解是,它应转换为 pok\u{00e9} ,但我不知道如何实现这一目标。

任何人都可以点我的权利我方向发展转换这些还有很多此 API 中的一种方式吗?

奖金︰ 还需要删除 \n 从字符串。

解决方法 1:

您可能想要给我们的更多背景关于原始服务器有效载荷的样子,并向我们展示你如何显示字符串。某些方面的审查在调试器中的字符串 (或如果你在看原始 JSON) 将显示您转义字符串,但是如果您在应用程序中使用的字符串,您将看到实际的 Unicode 字符。

我想知道是否你只想在原始 JSON。 例如,我传递 JSON, {"foo": "Eat pok\u00e9."} 为下面的代码︰

let jsonString = String(data: data, encoding: NSUTF8StringEncoding)!
print(jsonString)
let dictionary = try! NSJSONSerialization.JSONObjectWithData(data, options: []) as! [String: String]
print(dictionary["foo"]!)

它输出︰

{"foo":"pok\u00e9 吃"}
吃收服。

顺便说一句,这种标准的 JSON 转义语法不应混淆swift的字符串常值转义语法,必须在大括号中包裹的十六进制序列︰

print("Eat pok\u{00e9}.")

Swift使用一个不同逃避其字符串的语法,不应该混淆与受雇于像 JSON 格式。

官方微信
官方QQ群
31647020