【发布时间】: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 同样的事情,实际上我将此字符串传递给标签