Флаттер: парсинг Json со специальными символами (utf-8) - PullRequest
0 голосов
/ 31 марта 2020

У меня есть довольно простой c php код, который генерирует файл JSON с некоторыми данными:

$json = json_encode($theData, JSON_PRETTY_PRINT | JSON_FORCE_OBJECT | JSON_UNESCAPED_UNICODE);
file_put_contents('api.json', $json);

Когда я анализирую его в приложении Flutter, он возвращает специальные символы, а не такие символы, как "éóáêô".

Я анализировал файл json во Flutter следующим образом:

var data = await http.get("xxxx/api.json", headers: {'Content-Type': 'application/json'});
if (data.statusCode == 200) {
    print('Status Code 200: Ok!');
    var jsonData = json.decode(data.body);

Затем я выяснил, что изменение:

json.decode(data.body);

автор:

json.decode(utf8.decode(data.bodyBytes));

Решил проблему!

Вопрос такой: почему использование utf8.decode и bodyBytes решило проблему? Правильно ли я создаю файл JSON с PHP?

...