无法将数据转换为字符周围的字符串
Unable to convert data to string around character
我正在尝试执行 HTTP-Get 请求以在我的数据库中获取用户。在请求的数据 return 之后,我使用 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.
编码输出字符串来解决
如果您有可能对您的用户数据库使用 URL,您可以使用 http://validator.w3.org 验证您的输出。
如果我理解这个问题,我认为您必须将 servlet 的输出设置为 UTF-8。
例如,如果您使用 Java Servlet,则可以使用
response.setCharacterEncoding("UTF-8");
我正在尝试执行 HTTP-Get 请求以在我的数据库中获取用户。在请求的数据 return 之后,我使用 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.
如果您有可能对您的用户数据库使用 URL,您可以使用 http://validator.w3.org 验证您的输出。
如果我理解这个问题,我认为您必须将 servlet 的输出设置为 UTF-8。 例如,如果您使用 Java Servlet,则可以使用
response.setCharacterEncoding("UTF-8");