首页 > 解决方案 > 如何将 utf8 代码单元编码为 String 并读回 Flutter

问题描述

我的用户输入是一个字符串,它也有表情符号,所以我将它转换为一个 utf8 代码单元列表。当我将此响应发送到服务器时,它会将其存储为字符串

“[60, 115, 116, 114, 111, 110, 103, 62, 114, 105, 99, 104, 32, 116, 101, 120, 116, 240, 159, 152, 137, 240, 159, 152, 137, 240, 159, 152, 137, 240, 159, 152, 137, 240, 159, 152, 137, 60, 47, 115, 116, 114, 111, 110, 103, 62, 60, 98, 114, 62、60、98、114、62]"

但是当我尝试对此进行解码时,我不能utf8.decode(CodeUnits)要求列表输入,但我的输入现在是一个字符串。

我正在使用以下方法将此字符串编码为 utf8:

utf8.encode("My String here");

请让我知道是否有更好的方法来存储和显示表情符号。我们在 API 中使用 Django Rest Framework。

标签: flutterdartdjango-rest-frameworkutf-8emoji

解决方案


调用您的字符串temp,您可以通过以下方式将temp转换为 List:

List<int> intList = List<int>.from(json.decode(temp));

然后只需使用以下方法将其转换为 UTF8:

String result = new Utf8Decoder().convert(intList);
print(result);

结果:

<strong>rich text</strong><br><br>

一个更密集的答案是:

String result = new Utf8Decoder().convert(List<int>.from(json.decode(temp)))

推荐阅读