IOS学习之路二十(程序json转换数据的中文字符问题解决)

摘要:
当ios在web中请求json数据时,经常会出现乱码的问题。例如,请求结果可能如下:“U00e5U00a5U00bdU00e8U00aeU00a4”在Internet上找到的解决方案是:解析数据时,可以先将数据存储在NSdata对象中,然后对其进行代码转换,例如,NSdata*jsondata=[requestresponseData];NSString*jsonString=[[NSStringalloc]initWith

ios请求web中的json数据的时候经常出现乱码问题:

例如请求结果可能如下:"U00e5U00a5U00bdU00e8U00aeU00a4" 

在网上查到的解决方法是:

  • 解析数据的时候,可以先把数据存放在NSdata对象中,再进行转码,例如

    NSData*jsondata = [requestresponseData];

    NSString*jsonString = [[NSStringalloc]initWithBytes:[jsondatabytes]length:[jsondatalength]encoding:NSUTF8StringEncoding];

不过我按照这种方法做的还是没能解决。

最后通过下面的方法解决了:

- (NSString *)replaceUnicode:(NSString *)unicodeStr {
    
    NSString *tempStr1 = [unicodeStr stringByReplacingOccurrencesOfString:@"\u" withString:@"\U"];
    NSString *tempStr2 = [tempStr1 stringByReplacingOccurrencesOfString:@""" withString:@"\""];
    NSString *tempStr3 = [[@""" stringByAppendingString:tempStr2] stringByAppendingString:@"""];
    NSData *tempData = [tempStr3 dataUsingEncoding:NSUTF8StringEncoding];
    NSString* returnStr = [NSPropertyListSerialization propertyListFromData:tempData
                                                           mutabilityOption:NSPropertyListImmutable
                                                                     format:NULL
                                                           errorDescription:NULL];
    
   // NSLog(@"Output = %@", returnStr);
    return [returnStr stringByReplacingOccurrencesOfString:@"\r\n" withString:@"
"];
}


转载请注明:

 

本文转自:点击打开链接http://blog.csdn.net/wildcatlele

新浪微博:http://weibo.com/u/3202802157








免责声明:文章转载自《IOS学习之路二十(程序json转换数据的中文字符问题解决)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇vue3.x 传值类型变为Proxy【转】C++中了类继承和调用父类的构造函数方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

应用沙盒(Application Sandbox)

一、应用沙盒目录   应用沙盒包含多个目录: 1、应用程序包:(application bundle):包含所有的资源文件和可执行文件,并且是只读目录。 2、Library/Preferences/:存放所有的偏好设置(preferences),iOS的Setting(设置)应用会在该目录中查找应用的设置信息。通过NSUserDefaults类,可以存取L...

ios7 以后准确获取iphone设备的MAC(物理地址)

通过参考 钉钉 项目,知道是通过wifi拿到路由的MAC地址。那么可不可以拿到iphone 设备的MAC 地址呢? 经过一番搜索,发现所有文章都是针对 ios 7 以前 可以拿到。 而且方法也都是同一篇文章上面的,对于ios7 以后完全没提示。 而使用网络上的方法,在 大于 ios 7 的环境下, 永远返回的MAC 为02:00:00:00:00:00 下...

WKWebView-b

上一篇文章我们使用了JavaScriptCore框架重写了之前的示例,iOS8苹果偏爱HTML5,重构了UIWebVIew,给我们带来了WKWebView,使其性能、稳定性、功能大幅度提升,也更好的支持了HTML5的新特性。这篇文章就们就拿WKWebView来小试牛刀 回到顶部 一、WKWebView Framework WKWebView的14个类与...

iOS KVC 键值编码

1 什么是键值编码 键值编码,key value coding, 简称KVC KVC, 通过字符串间接的获取、改变对象的状态。 2 KVC的基本使用 通过字符串获取对象的状态 接口 oc对象的实例方法:- (id)valueForKey:(NSString *)key; 实例 找name属性或者name方法 如果找不到,就找name和_na...

CoreLocation+MapKit系统定位(含坐标以及详细地址)

iOS8 之后出现一些新的配置 [self.manager requestWhenInUseAuthorization]; 并且在info.plist文件中增加 NSLocationWhenInUseUsageDescription BOOL YES NSLocationAlwaysUsageDescription string “...

iOS开发时间戳与时间,时区的转换,汉字与UTF8,16进制的转换

原文:http://blog.sina.com.cn/s/blog_68661bd80101njdo.html //获取当前系统的时间戳+(long)getTimeSp{    long time;    NSDate *fromdate=[NSDate date];    time=(long)[fromdate timeIntervalSince197...