开发者社区> 问答> 正文

iOS使用ASIHTTPRequest请求过来的数据中包含utf-8字符 ? 400 报错

iOS使用ASIHTTPRequest请求过来的数据中包含utf-8字符 ? 400 报错


在使用ASIHTTPRequest请求一个接口时,使用NLog打印出返回的Json串,发现有很少一部分汉字显示的是其UTF-8编码的样式,比如“考试”会显示为“考\350\257\225”,其中\350\257\225是“试”utf-8编码,而且没有规律,有些时候这个字显示不正常,有时候显示正常,Android上没有这种问题,在服务端打印出生成的JSON也是正常的,所以接口返回值应该没有问题。服务器返回头的编码是UTF-8,ASIHTTPRequest也设置了UTF8编码:

request.defaultResponseEncoding = NSUTF8StringEncoding;
现在怀疑是 ASIHTTPRequest的问题,不知大家谁遇见过这样的问题,谢谢!


展开
收起
爱吃鱼的程序员 2020-06-04 13:14:04 950 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    没有错误啊,打印的是那样 但真正显示出来就正常了
    ######大不了再自己转一次呗~######怎么转啊?求帮助######正常的..######回复

    @乔学士 : 你用的啥Json解析库######正常?那应该怎么处理?在解析JSON的时候会因为语法不正确,解析错误,愁着呢,兄弟给个招######

    //转换代码

        SBJsonWriter *jsonWriter = [[SBJsonWriter alloc] init];

        NSString *jsonString = [jsonWriter stringWithObject:dict];

        [jsonWriter release];

    ######

    哪位大神能帮我解决个问题 AISHttpRequest流传递。服务端是J2EE.后台报错。主要是因为:

    DataInputStream in = new DataInputStream(request.getInputStream());

    String sb = in.readUTF();

    无法解析。求大神指教下!


    ######

    引用来自“dreamlife_zhou”的答案

    没有错误啊,打印的是那样 但真正显示出来就正常了

    @dreamlife_zhou 兄说正解,谢谢! 这个不是最终导致错误的原因,是接口有时会返回一段非Json的response,导致解析失败.

    2020-06-04 14:34:19
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
手淘iOS性能优化探索 立即下载
From Java/Android to Swift iOS 立即下载
深入剖析iOS性能优化 立即下载