我已经使用json工作了一段时间了,问题在于我解码的字符串被编码为Latin-1,而我无法将其转换为UTF-8。因此,某些字符显示不正确(例如,'显示为')。
我在stackoverflow上读了几个问题,但它们似乎不起作用。
我正在处理的json结构如下所示(来自YouTube API):
...
"items": [
{
...
"snippet": {
...
"title": "Powerbeats Pro “Totally Wireless” Except when you need a wire",
...
}
}
]
我使用以下方式对其进行编码:
response = await http.get(link, headers: {HttpHeaders.contentTypeHeader: "application/json; charset=utf-8"});
extractedData = json.decode(response.body);
dataTech = extractedData["items"];
然后我尝试将第二行修改为:
extractedData = json.decode(utf8.decode(response.body));
但是这会给我一个关于格式错误的错误。所以我将其更改为:
extractedData = json.decode(utf8.decode(response.bodyBytes));
这样做不会触发错误,但也没有解决问题。调整标头也无济于事。
我希望数据像现在一样存储在dataTech中,但以UTF-8编码进行编码。我做错了什么?
replaceAll()
替换它们即可。虽然这似乎不是一个理想的解决方案,但它确实起作用。 - Karol Wasowski