我在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');
有人有类似的问题或如何解决的想法吗?
谢谢
垫子