下面的示例将数据加载到我的列表 View 中,但是某些字符无效,例如。我正在尝试使用utf8

var jsonData = json.decode(response.body);

var jsonData = utf8.decode(response.bodyBytes);

当我使用utf8时,结果是正确的,但是在listTile中加载数据时出现引号并出错
//I/flutter ( 4629): {"items":[{"name":"xyšć",  //character is OK but get quotation mark
//I/flutter ( 4629): {items: [{name: xyÄÄ,  //wrong character



class Api {
  static Future<dynamic> _get(String url) async {
    try {
      final response = await http.get(url);
      var jsonData = json.decode(response.body);

有什么办法吗?

最佳答案

您的服务器可能未使用content-type指定字符集,因此http软件包默认为Latin-1

结合您在上面给出的两个部分。使用utf8.decode将字节解码为字符串,然后使用json.decode将字符串作为JSON解码为映射。

  var jsonData = json.decode(utf8.decode(response.bodyBytes));

关于flutter - 某些字符无法正确加载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59330138/

10-13 08:27