Flutter конвертировать UTF-8 символов HTTP сообщения - PullRequest
0 голосов
/ 26 апреля 2020

У меня проблема с отправкой символов UTF-8 в HTTP-запросе. В основном, когда я посылаю китайские / японские символы, текст становится гиббери sh. Текст прошел, и я получил ответ. То же самое происходит, если я вставил несколько смайликов. Я публикую это на каком-то веб-сайте.

Я использую библиотеку http по умолчанию и проверяю на соответствие этому тексту:

卯 鵜 は ご い ま ま す が

Ожидание:

卯 鵜 は ご ざ い ま す 100

Что показано на сайте:

ã¯éµœã¯ã ”ã – ã„ ã¾ã ™ ãŒ

Когда я отправляю тот же текст через веб-сайт, по-видимому, он кодирует символы utf8 перед отправкой на сервер. Не уверен, что мне придется сначала его кодировать, но потом я не знаю, как этого добиться.

Вот как это выглядит:

0A% u536F% u9D5C% u306F% u3054% u3056% u3044% u307E% u3059% u304C% 0A% 0A

Мой код:

Map<String, String> requestHeaders = {
         "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.50 Safari/537.36",
         "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
       };


Map<String, String> body = {
         'message': '卯鵜はございますが',
         'securitytoken': someSecurityToken,
         'do':'updatepost'
       };

 var response = await http.post(someURL, headers: requestHeaders, body: body, encoding: Encoding.getByName("UTF-8"));
...