在中文情况下将NSString转换为NSData
每个人,我知道这个问题是很多人要问,堆栈溢出有很多答案,但在我的情况下,我尝试从这里得到的JSON格式,代码是这样的:
// Get JSON NSString* path = @"http://opendata.epa.gov.tw/ws/Data/UV/?format=json"; NSURL* url = [NSURL URLWithString:path]; NSString* jsonString = [[NSString alloc]initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; NSData* jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; NSDictionary* dic = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil]; NSArray* arrayResult = dic; NSDictionary* resultDic = [arrayResult objectAtIndex:0]; NSLog(@"resultDic:%@", resultDic); NSString* uv = [resultDic objectForKey:@"UVI"]; NSLog(@"UVI:%@", uv); NSString* publicshedTime = [resultDic objectForKey:@"PublishTime"]; NSLog(@"PublishTime:%@", publicshedTime); NSLog(@"中文");
我用了 :
NSString* jsonString = [[NSString alloc]initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; NSData* jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
但这不是有效的,我不知道为什么。
在控制台中,我可以正确地看到中文单词,在debugging器中,我可以看到“jsonString”的内容是正确的,但我不知道为什么我将它转换为NSData,内容会出错,输出如下所示:
2014-05-27 03:24:09.307 Tab demo[3014:60b] resultDic:{ County = "\U5609\U7fa9\U5e02"; PublishAgency = "\U4e2d\U592e\U6c23\U8c61\U5c40"; PublishTime = "2014-05-27 03:00"; SiteName = "\U5609\U7fa9"; TWD97Lat = "23,29,52"; TWD97Lon = "120,25,28"; UVI = 0; } 2014-05-27 03:24:09.308 Tab demo[3014:60b] UVI:0 2014-05-27 03:24:09.308 Tab demo[3014:60b] PublishTime:2014-05-27 03:00 2014-05-27 03:24:09.308 Tab demo[3014:60b] 中文
当然,没有中文单词的其他数据显示正确。
这个错误看起来像编码错误,但我不知道如何正确解决它,谁能告诉我的方式来解决它,非常感谢!
当使用NSLog
logging时,不要在控制台中比较对象的内容。 这是不可靠的,因为将对象转换为string的algorithm没有logging,不严格,仅用于debugging目的。
使用compare:
方法比较对象。
- 如何在UINavigationItem ..中添加UISegmentControl?
- XCode 6.2中缺lessiOS Simulator 8.1 SDK
- Flash CS5.5:使用iPhone上的CameraUI捕捉照片时,照片会旋转
- iOS MDM – 从Java发送MDM推送通知?
- AVAudioPlayer始终是nill,它的isPlaying属性总是假的。 文件在播放时混合
- 减less多行UILabel中最后一行的宽度
- 真的很酷的方式来创buildiPhone应用程序的自定义UITabBar?
- 在ios7中,UITableViewCellAccessoryDetailDisclosureButton分为两个不同的附件button
- WKWebView评估JavaScript返回值