iOS使用ASIHTTPRequest请求过来的数据中包含utf-8字符 ? 400 报错-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

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

爱吃鱼的程序员 2020-06-04 13:14:04 44

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的问题,不知大家谁遇见过这样的问题,谢谢!


iOS开发
分享到
取消 提交回答
全部回答(1)
  • 爱吃鱼的程序员
    2020-06-04 14:34:19

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

    @乔学士 : 你用的啥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,导致解析失败.

    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题