zoukankan      html  css  js  c++  java
  • IOS 原生解析JSON 问题

    服务器----WebService

    返回的是JSON数据 IOS解析报错:

    Error Domain=NSCocoaErrorDomain Code=3840 "Unable to convert data to string around character 56." UserInfo={NSDebugDescription=Unable to convert data to string around character 56.} 

    Code = 3840 错误

    通过我将JSON写成文档数据本地解析成功,但在IOS请求解析一直报这个错误

    两次结果不同,于是将请求来的JSON数据data打印出来,发现网路请求的JSON数据字节流和本地数据解析打印的data字节流不一样(注:我TMD一个一个对比出来的,前些数据一样,后面就不同了。你也对对看看你自己的是不是也是这个错误

    原因分析:WebService返回的是GB2312编码数据。IOS解析要转换为UTF8编码格式的数据!

    解决方案:将GB2312格式的数据转换为UTF8的

    转换代码:

    -(NSString *) gb2312toutf8:(NSData *) data{

        NSStringEncoding enc =CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000); 

        NSString *retStr = [[NSString alloc] initWithData:data encoding:enc];

        return retStr;

    }  //现将编码格式转换为NSString

    调用上面的方法:

    NSString *dataStr = [self   gb2312toutf8:data];

    再将dataStr转换为UTF8编码的数据

    NSdata *data = [dataStr   dataUsingEncoding:NSUTF8StringEncoding];

    好了,可以解析data数据了 

  • 相关阅读:
    day 7-5 守护线程
    小练习:思考下述代码的执行结果有可能是哪些情况?为什么?
    深浅copy详解
    练习题,使用多线程编写一个简单的文本处理工具
    harbor搭建v1.8.3
    mysql常用命令
    windows安装MySQL
    centos用户和用户组的管理及简单操作
    CentOS 7下安装谷歌浏览器
    typecho管理员修改密码
  • 原文地址:https://www.cnblogs.com/zhaoxh66/p/5491238.html
Copyright © 2011-2022 走看看