【问题标题】:Issue with converting data string to UTF8将数据字符串转换为 UTF8 的问题
【发布时间】:2016-07-15 10:17:59
【问题描述】:

我正在使用 JSON 获取一些数据,但是当我获取数据时,names 字符串是这样的:

{
    code = 200;
    found = 1;
    name = "\\u0635\\u0641\\u062d\\u0647 \\u0631\\u0633\\u0645\\u06cc \\u0633\\u0627\\u06cc\\u062a \\u0648\\u0631\\u0632\\u0634 \\u06f3";
}

如何解决?我试图将其转换为 UTF8 编码,但仍然没有!我不得不说 URL 在 Safari 中使用 UTF8 编码可以正常工作

这是我的代码:

   let userURL: String = "https://myurl.com/xxx"
        let ut8 = userURL.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())

        NSURLSession.sharedSession().dataTaskWithURL(NSURL(string:ut8!)!, completionHandler: { (data, response, error) -> Void in
            // Check if data was received successfully
            if error == nil && data != nil {
                do {
                    if let jsonResult = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? NSDictionary {
                       print(jsonResult)
    }

.....
}

问题已解决:服务器出现问题,现已修复

【问题讨论】:

  • 这不是 JSON 字符串,它是字典表示。您确定 JSON 包含那些 Unicode 令牌吗?
  • @vadian 我只是编辑我的 Q 标题
  • 不要转换 name 字符串并将其分配给 UILabel 的 text 属性。会发生什么?
  • 您的问题是什么?看来您已成功收到您的 JSON 数据作为 NSDictionary。试试print(jsonResult["code"], jsonResult["found"], jsonResult["name"])
  • @vadian 同样的事情,实际上我将此字符串传递给标签

标签: ios iphone json swift


【解决方案1】:

这正是print 方法输出的内容,它有时会出现编码问题。在 UI 中呈现这些文本时应该没问题。

【讨论】:

    【解决方案2】:

    在 Swift 中将数据字符串转换为 UTF8 字符串

    yourNSStringObject.utf8
    

    在 Objective C 中使用将数据字符串转换为 UTF8 字符串

    [yourNSStringObject UTF8String];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-29
      • 1970-01-01
      • 2012-07-17
      • 2010-12-04
      • 1970-01-01
      • 2015-09-04
      • 2020-10-11
      • 2012-02-01
      相关资源
      最近更新 更多