【问题标题】:Unable to convert data to string around character无法将数据转换为字符周围的字符串
【发布时间】:2016-06-06 13:12:16
【问题描述】:

我正在尝试执行 HTTP-Get 请求以获取数据库中的用户。从请求返回数据后,我使用SwiftyJson library 获取用户。

但是,他名字中的一个用户包含字符“ò”,我收到了这个错误: Optional(Error Domain=NSCocoaErrorDomain Code=3840 "Unable to convert data to string around character 208." UserInfo={NSDebugDescription=Unable to convert data to string around character 208.})

这是我的代码:

func makeHTTPGetRequest(path: String, onCompletion: ServiceResponse) {
    let request = NSMutableURLRequest(URL: NSURL(string: path)!)
    let session = NSURLSession.sharedSession()
    let task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
        if let jsonData = data {
            var parseError: NSError?
            let json:JSON = JSON(data: jsonData, error: &parseError)
            onCompletion(json, parseError)
        } else {
            onCompletion(nil, error)
        }
    })
    task.resume()
}

【问题讨论】:

  • 这可能意味着服务器没有发送UTF-8编码的数据。
  • @MartinR 感谢您的问题!现在可以了!!

标签: ios json swift http-get swifty-json


【解决方案1】:

如果我理解这个问题,我认为您必须将 servlet 的输出设置为 UTF-8。 例如,如果您使用 Java Servlet,则可以使用

response.setCharacterEncoding("UTF-8");

【讨论】:

    【解决方案2】:

    您必须确保发送的字符编码与解析器预期的相同。我假设您的问题可以通过使用UTF-8. 编码输出字符串来解决@

    如果您可以使用指向用户数据库的 URL,则可以使用 http://validator.w3.org 验证您的输出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多