某些字符无法正确加载

时间:2019-12-13 21:39:28

标签: flutter dart flutter-test flutter-web

下面的示例将数据加载到我的列表视图中,但是某些字符无效,例如。 ÅÄ我正在尝试使用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);

有解决方案吗?

1 个答案:

答案 0 :(得分:3)

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

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

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