Я использую собственный HTTP-клиент (cordova-plugin-advanced-http) в своем проекте Ionic 3 и думаю, что обнаружил проблему с символами UTF8 на Android.
Я получаю данные обратно из вызова POST, и ответ обычно представляет собой JSON, который я могу проанализировать с помощью обычной функции JSON.parse. Всякий раз, когда внутри есть несколько символов, отличных от ascii (например, à è ì ì ù), содержимое json возвращается неверно следующим образом:
Фактические данные в ответе HTTP:
{"activityResponse":{"activityId":"2113000190","errorCode":"0002","errorDesc":"Guasto già chiuso"}}
Response.data из собственного POST-обещания:
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');
У кого-нибудь есть похожая проблема или идеи, как ее решить?
Спасибо
Мат