【发布时间】:2019-12-08 05:02:16
【问题描述】:
我正在从我的服务器取回 JSON 数据,但表情符号被序列化为奇怪的字符。
msgcontent: â¤ï¸â¤ï¸â¤ï¸ð,
我正在使用 http 包。在邮递员上,它完美地显示了表情符号,因此它不是 db 或 json 错误。我错过了什么?
谢谢。
【问题讨论】:
-
@RichardHeap 它与我正在寻找的类似,但答案错误。请检查下面的正确答案。
我正在从我的服务器取回 JSON 数据,但表情符号被序列化为奇怪的字符。
msgcontent: â¤ï¸â¤ï¸â¤ï¸ð,
我正在使用 http 包。在邮递员上,它完美地显示了表情符号,因此它不是 db 或 json 错误。我错过了什么?
谢谢。
【问题讨论】:
以防万一有人正在寻找更简单方便的解决方案来解决这个非常问题
在看到 Leoog 的回答后,我建议不要使用单独的函数来执行 UTF 解码,而是可以简单地从类似的东西编辑网络请求代码
final response = await http.get(....);
final result = jsonDecode(response.body);
到
final response = await http.get(....);
final result = jsonDecode(utf8.decode(response.bodyBytes));
这样,UTF 解码将在数据层内进行,从而保持我们的表示层整洁,从而提升separation of concerns。
【讨论】:
在做一些研究后回答我自己的问题,这是不使用 Future 的最好和最简单的方法。你可以把它放在任何地方。
import 'dart:convert';
String utf8convert(String text) {
List<int> bytes = text.toString().codeUnits;
return utf8.decode(bytes);
}
【讨论】:
尝试使用 UTF8 字符编码对您的数据进行编码/解码,这可能只是解决问题的方法,之前已回答:
【讨论】: