【发布时间】:2019-07-11 21:24:24
【问题描述】:
有没有一种简单的方法可以使用 Darts http - API(在 Flutter 中)在 API 中查询诸如“ä”、“ö”、“ü”之类的德语字母?
API 查询应该将 JSON 字符串下载到 Flutterapp。 不幸的是,json 字符串包含德语特殊字符。
String einleseURL = 'http://xxx.xxx.xxx.xxx/einlesen.json';
final ausgeleseneJsonString = await http.get(Uri.encodeFull(einleseURL));
uiUeberprueft = serializers.deserializeWith(
RenderEbeneErste.serializer, json.decode(ausgeleseneJsonString.body));
我能想到的唯一解决方案是将 jSON 字符串转换为 utf-8 的数值,并将这个新文件保存在服务器上以进行 http 查询。 然后由 Flutter 调用数字列表并在 json.decode() 发生之前使用 utf.decode() 解密。
请参考: How can I convert string to utf8 in Dart?
有没有更简单的方法?
【问题讨论】:
-
对于 HTTP 请求,德语特殊字符没有什么特别之处。你得到的实际结果是什么?
-
尊敬的君特,感谢您的回复。例如,实际结果是:' "nutzerHilfe": "Beschreibung hinzufügen", '。此外,Flutter 中生成的 UI 看起来与控制台上的输出 debugPrint (ausgeleseneJsonString.body) 完全相同。
-
如果在浏览器中加载 URL 会得到什么?也许服务器发送的
content-type标头中的charset部分不正确。也许字符串甚至不是 UTF-8 编码,而是其他编码? -
查询通过计算机上的 IIS 运行。 .json 文件在 Notepad ++ 中编码为 utf-8。在浏览器中,即使在不同的设备上,字符串也能正确显示。
-
非常感谢。使用来自链接页面的稍微修改的源代码,它运行。谢谢!如果有人对源代码感兴趣,我喜欢发布。
标签: json api http dart flutter