php - Flutter:用特殊字符解析 Json (utf-8)
问题描述
我有一个非常基本的 php 代码,它生成一个带有一些数据的 JSON 文件:
$json = json_encode($theData, JSON_PRETTY_PRINT | JSON_FORCE_OBJECT | JSON_UNESCAPED_UNICODE);
file_put_contents('api.json', $json);
当我在我的 Flutter 应用程序中解析它时,它会返回特殊字符,而不是像“éóáêô”这样的字符。
我在 Flutter 中解析 json 文件,如下所示:
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 解决了这个问题?我是否使用 PHP 正确创建了 JSON 文件?
解决方案
推荐阅读
- typescript - 如何使用和添加图标到 ag-grid 中的单元格以指示该单元格是可编辑的
- x509certificate - 如何将主题替代名称添加到 FreeBSD 操作系统中现有的 mycomapny.cer 证书?
- python - Pandas 不识别分类 - 当 convert_categorical=True 时访问原始代码
- java - Java Swing 在绘画/渲染时是否会阻塞 UI?
- android - Android Studio 无法识别我的小米红米 4a miui 9.6.5.0
- php - 如何使用 PHP 检查数据库中是否存在类别名称和父 ID?
- c++ - 十进制到二进制转换器c ++
- javascript - 应用程序脚本匹配包含 ID 的工作表名称并使其可见
- javascript - 如何在不使用 Javascript 中的库和内置方法的情况下计算平方根?
- vhdl - 创建模16计数器时出现VHDL时钟问题