Ionic Native Http Client - некоторые символы UTF8, нарушающие response.data - PullRequest
0 голосов
/ 16 ноября 2018

Я использую собственный 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');

У кого-нибудь есть похожая проблема или идеи, как ее решить?

Спасибо

Мат

...