Как я могу преобразовать строку utf8 в LATIN1 в дартс? - PullRequest
0 голосов
/ 04 мая 2020

У меня много строк, где акценты конвертируются неправильно. Я беру эти строки из API, поэтому не могу получить их в других форматах кодирования. Например, строка é возвращается как é из API. Можно ли как-нибудь преобразовать эти строки, чтобы правильно показать акценты?

1 Ответ

1 голос
/ 04 мая 2020

Ну, вы можете попробовать что-то вроде этого:

import 'dart:convert';

void main() {
  const input = 'é';
  final output = utf8.decode(latin1.encode(input), allowMalformed: true);
  print(output); // é
}

В качестве альтернативы вы можете получить ответ от вашего веб-вызова в байтах, используя bodyBytes на объекте ответа: https://pub.dev/documentation/http/latest/http/Response/bodyBytes.html

И проанализируйте его с помощью: latin1.decode или любой другой кодировки, с которой сервер отправляет данные как.

...