У меня есть довольно простой 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?