我有以下字符串来自我的后端服务器\u25CF\u25CF\u25CF
,当我用UTF-8解码它时,它在iOS原生应用程序中运行良好,但当我尝试在flutter中解析它时,我无法获得转换后的值。我尝试了以下方法,但没有成功
String converted = Utf8Decoder().convert(userName.codeUnits);
String uname = utf8.decode(userName.runes.toList());
String runes = String.fromCharCodes(Runes('$userName'));
有谁知道我们如何解决这个问题吗?转换后的真实值应该是3个点。
- 更新**
这是json解析代码
if (response.statusCode == 200) {
Map<String, dynamic> postResponse = response.data;
var postsJson = postResponse["posts"];
for (var postObjet in postsJson) {
Map<String, dynamic> finalMap = Map<String, dynamic>.from(postObjet);
Post p = Post.fromMap(finalMap);
posts.add(p);
}
}
JSON响应示例
The Chat service we\u2019ve been paying for since our launch
3条答案
按热度按时间yshpjwxd1#
您从一个带有unicode转义的字符串开始,然后希望以一个包含实际unicode字符的字符串结束,如果输入只包含unicode转义,这很容易,因为您可以简单地去掉
\u
并将十六进制解析为一个码位。对于可能同时存在转义字符和未转义字符的情况,更通用的解决方案是使用匹配\xnnnn的正则表达式,将nnnn解析为十六进制,然后用该码位替换它。
像这样使用它:
最后,请注意,如果这些转义字符串出现在JSON中,JSON解码器将自动转换它们。
ryevplcw2#
试试这个
a0x5cqrl3#
考虑使用characters包而不是符文。看起来它可以解决你的问题。