用Swift 3解码字符串



我在我的Web服务响应中得到以下编码字符串

  U00e0U00aaU0095U00e0U00abU0083U00e0U00aaU00aaU00e0U00aaU00be U00e0U00aaU0095U00e0U00aaU00b0U00e0U00abU0080U00e0U00aaU00a8U00e0U00abU0087 U00e0U00aaU009fU00e0U00abU008bU00e0U00aaU00a1 U00e0U00aaU008fU00e0U00aaU00aaU00e0U00abU008dU00e0U00aaU00b2U00e0U00aaU00bfU00e0U00aaU0095U00e0U00abU0087U00e0U00aaU00b6U00e0U00aaU00a8 U00e0U00aaU00a4U00e0U00aaU00aaU00e0U00aaU00beU00e0U00aaU00b8U00e0U00abU008b. U00e0U00aaU00a4U00e0U00abU008dU00e0U00aaU00afU00e0U00aaU00beU00e0U00aaU0082 U00e0U00aaU00aaU00e0U00abU008dU00e0U00aaU00b0U00e0U00aaU00b5U00e0U00aaU00beU00e0U00aaU00b8 U00e0U00aaU00aeU00e0U00aaU00beU00e0U00aaU009fU00e0U00abU0087 U00e0U00aaU008fU00e0U00aaU0095 U00e0U00aaU00a8U00e0U00aaU00b5U00e0U00abU0080 U00e0U00aaU00a4U00e0U00aaU00aaU00e0U00aaU00beU00e0U00aaU00b8 U00e0U00aaU009bU00e0U00abU0087

以及

àªà«àªªàª¾ àªàª°à«àª¨à« àªà«àª¡ àªàªªà«àªàªªà«àª302²àª¿àªàªªà«àª302²àª¿àª303à«àª¶àª¨ તપાàપà«àª302²àª¿àª303à«àª¶àª¨ તપાà302ª¸à«. તà«àª¯àª¾àª પà«àª°àªµàª¾àª¸ માàªà« àªàª નવૠતપાસ àªà«.

所以我如何解码swift 3中的字符串。

在JSON(Postman Output)中获取以下对象

 {
  "message": "કૃપા કરીને એપ્લિકેશન તપાસો. ત્યાં પ્રવાસ માટે એક નવી તપાસ છે.",
},
{
  "message": "કૃપા કરીને એપ્લિકેશન તપાસો. ત્યાં પ્રવાસ માટે એક નવી તપાસ છે.",
}

但是在xcode中,我遵循

"Notifications" : [
{
  "message" : "àªà«àªªàª¾ àªàª°à«àª¨à« àªà«àª¡ àªàªªà«àªàªªà«àª302²àª¿àªàªªà«àª302²àª¿àª303à«àª¶àª¨ તપાàપà«àª302²àª¿àª303à«àª¶àª¨ તપાà302ª¸à«. તà«àª¯àª¾àª પà«àª°àªµàª¾àª¸ માàªà« àªàª નવૠતપાસ àªà«.",
},
{
  "message" : "àªà«àªªàª¾ àªàª°à«àª¨à« àªà«àª¡ àªàªªà«àª²àª¿àªà«àª¶àª¨ તપાસà«. તà«àª¯àª¾àª પà«àª°àªµàª¾àª¸ માàªà« àªàª નવૠતપાસ àªà«.",
}

问题是您只是在打印嵌套的NSArray/NSDictionary对象,该对象无法正确渲染UTF8字符串:

let originalJsonObject = try? JSONSerialization.jsonObject(with: data)
print("(originalJsonObject)")                    // this will show the cryptic U00eeU00a0 ... result

将显示您在问题中分享的文字:

...
消息=" u0a95 u0ac3 u0aAa u0abe u0a95 u0ab0 u0ab0 u0ac0 u0aa8 u0ac7 u0a9f u0a9f u0aacb u0acb u0aa11 u0a1 u0a8f u0a8f u0aab u0aab u0aab2 0ac7 u0ab6 u0aa8 u0aa4 u0aaa u0aa U0ABE U0AB8 U0ACB。 95 u0aa8 u0ab5 u0ac0 u0aa4 u0aaa u0abe u0ab8 u0a9b u0ac7。 ...

但是,如果您继续使用该对象,您会发现一切实际上都可以:

guard
    let json = originalJsonObject as? [String: Any],
    let notifications = json["Notifications"] as? [[String: Any]],
    let string = notifications[0]["message"] as? String else {
        print("problem parsing")
        return
}
print("(string)")

将显示:

કૃપાકરીનેએપ્લિકેશનતપાસો。

很明显,如何提取字符串的详细信息将是更广泛的JSON结构的函数,您用来解析它的API等等,但是它说明了这个想法。不必担心如何显示NSDictionary,但是请继续获取String对象,您会发现可以很好地使用UTF8字符串。

相关内容

  • 没有找到相关文章

最新更新