18

我已经阅读了一个文件并得到了一个整数列表。对于我的大部分工作,这是我想要得到的,但在一种情况下,我还需要将一些List<int>转换为String.

更具体地说,我想用 UTF-8 对字符串进行编码。

这是我刚刚尝试过的:

var decoder = new Utf8Decoder(figures);
print(decoder.decodeRest());

但我得到的只是一个整数列表。

4

4 回答 4

27

String.fromCharCodes(List<int> charCodes)可能是您正在寻找的。

  List<int> charCodes = const [97, 98, 99, 100];
  print(new String.fromCharCodes(charCodes));
于 2012-07-29T16:21:11.407 回答
13

您可以使用提供UTF-8 编解码器的dart:convert库:

import 'dart:convert';

void main() {
  List<int> charCodes = [97, 98, 99, 100];
  String result = utf8.decode(charCodes);
  print(result);
}
于 2013-09-18T23:35:08.927 回答
11

如前所述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(",");
于 2012-07-29T18:08:22.457 回答
0

您可以使用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);
于 2018-09-08T06:09:00.843 回答