Je travaille avec json depuis un certain temps et le problème est que les chaînes que je décode sont codées en Latin-1 et je ne peux pas les faire fonctionner en UTF-8. De ce fait, certains caractères sont affichés de manière incorrecte (par exemple, ' affiché comme ').
J'ai lu quelques questions ici sur stackoverflow, mais elles ne semblent pas fonctionner.
La structure json avec laquelle je travaille ressemble à ceci (elle provient de l'API de YouTube) :
...
"items": [
{
...
"snippet": {
...
"title": "Powerbeats Pro “Totally Wireless” Except when you need a wire",
...
}
}
]
Je l'encode avec :
response = await http.get(link, headers: {HttpHeaders.contentTypeHeader: "application/json; charset=utf-8"});
extractedData = json.decode(response.body);
dataTech = extractedData["items"];
Et puis ce que j'ai essayé, c'est de changer la deuxième ligne en :
extractedData = json.decode(utf8.decode(response.body));
Mais cela m'a donné une erreur à cause d'un mauvais format. Alors je l'ai changé en :
extractedData = json.decode(utf8.decode(response.bodyBytes));
Cela n'entraîne pas l'erreur, mais ne résout pas non plus le problème. Jouer avec les en-têtes n'apporte rien.
Je voudrais que les données soient stockées dans dataTech comme elles le sont actuellement, mais codées en UTF-8. Qu'est-ce que je fais de mal ?