我已经阅读了一个文件并得到了一个整数列表。对于我的大部分工作,这是我想要得到的,但在一种情况下,我还需要将一些List<int>
转换为String
.
更具体地说,我想用 UTF-8 对字符串进行编码。
这是我刚刚尝试过的:
var decoder = new Utf8Decoder(figures);
print(decoder.decodeRest());
但我得到的只是一个整数列表。
我已经阅读了一个文件并得到了一个整数列表。对于我的大部分工作,这是我想要得到的,但在一种情况下,我还需要将一些List<int>
转换为String
.
更具体地说,我想用 UTF-8 对字符串进行编码。
这是我刚刚尝试过的:
var decoder = new Utf8Decoder(figures);
print(decoder.decodeRest());
但我得到的只是一个整数列表。
String.fromCharCodes(List<int> charCodes)
可能是您正在寻找的。
List<int> charCodes = const [97, 98, 99, 100];
print(new String.fromCharCodes(charCodes));
您可以使用提供UTF-8 编解码器的dart:convert库:
import 'dart:convert';
void main() {
List<int> charCodes = [97, 98, 99, 100];
String result = utf8.decode(charCodes);
print(result);
}
如前所述String.fromCharCodes(List<int> charCodes)
,如果您想将 unicode 字符转换为字符串,您可能正在寻找它。但是,如果您只想将列表合并成一个字符串,您可以使用Strings.join(List<String> strings, String separator)
.
Strings.join([1,2,3,4].map((i) => i.toString()), ",")) // "1,2,3,4"
更新(新的 Dart 版本): Strings.join 不再有效,因此您必须改用它:
[1,2,3,4].map((i) => i.toString()).join(",");
您可以使用dart:convert
提供 UTF-8 编解码器的库,但请务必使用utf8 全部小以使用其方法。
List<int> byteArray = [72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100];
String result = utf8.decode(byteArray);
List<int> orginal = utf8.encode(result);