Ionic本机Http客户端-一些UTF8字符破坏了response.data

时间:2018-11-16 13:34:57

标签: ionic-framework ionic3 ionic-native

我在Ionic 3项目中使用本机HTTP客户端(cordova-plugin-advanced-http),我认为我发现Android上的UTF8字符有问题。 我从POST调用中获取了数据,响应通常是我可以使用普通JSON.parse函数解析的JSON。每当内部有一些非ASCII字符(例如àèòùù)时,json内容将错误地返回,如下所示:

  • HTTP响应中的实际数据:

    {"activityResponse":{"activityId":"2113000190","errorCode":"0002","errorDesc":"Guasto già chiuso"}}
    
  • 本机POST承诺中的Response.data:

    chiuso"}}
    

此问题似乎仅在Android上发生。插件的iOS端可以很好地处理这些字符。 不幸的是,我必须使用本机HTTP客户端来解决CORS问题,并且无法切换回标准Angular HTTP客户端。

我还在POST请求之前设置了以下选项:

this.http.setHeader('*', 'Content-Type', 'application/json; charset=UTF-8');
this.http.setHeader('*', 'Accept-Charset', 'UTF-8');
this.http.disableRedirect(true);
this.http.setDataSerializer('utf8');

有人有类似的问题或如何解决的想法吗?

谢谢

垫子

0 个答案:

没有答案