Я использую NSURLSession для связи с веб-серверами и NSJSONSerialization для декодирования JSON. У меня проблемы с интерпретацией персонажей эможи.NSJSONSerialization, NSURLSession, Unicode в приложениях/ответы json
К примеру, у меня есть файл в формате JSON по адресу: https://www.virtualsanity.com/unicode.json
Содержание этого файла:
{"\uf4a9": "\uf4a9"}
Ключ и значение в словаре "\ uf4a9". Я считаю, что это человек с эвакуацией.
У меня есть этот Swift код работает на прошивке 9:
let urlSession = NSURLSession.sharedSession()
let url = NSURL(string: "https://www.virtualsanity.com/unicode.json")!
let request = NSMutableURLRequest(URL: url)
let dataTask = urlSession.dataTaskWithRequest(request) { (data, urlResponse, error) in
print("encoding: ", urlResponse?.textEncodingName)
if let responseData = data {
if let json = try? NSJSONSerialization.JSONObjectWithData(responseData, options: NSJSONReadingOptions()) {
if let dictionary = json as? [String: String] {
for (key, value) in dictionary {
print("key: \(key), value: \(value)")
}
}
} else {
print("Unable to deserialize json")
}
} else {
print("No response data")
}
}
dataTask.resume()
Я ожидаю, как ключ и значения результирующего словаря, быть символом. Вместо этого они являются персонажами мусора.
Я надеюсь, что кто-то может помочь мне понять, что я делаю неправильно.
Я не мог сделать \ u1F4A9 работы, но я мог бы сделать \ ud83d \ udca9 работы. Являются ли кодирование веб-сервисов как \ uf4a9 просто неправильным, или есть что-то, что я должен сделать, чтобы сделать мой декодер более терпимым? Благодарю. –
Я видел это раньше и каждый раз, когда это было веб-службой, что не так – juanjo