Domanda

Ho letto un file e mi sono preso una lista di numeri interi.Per la maggior parte del mio lavoro questo è ciò che voglio ottenere, ma in un caso ho anche bisogno di convertire un po 'di List<int> in un String.

Per essere più specificato, voglio codificare la stringa in UTF-8.

Questo è ciò che ho appena provato:

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

Ma tutto quello che ottengo è una lista di numeri interi.

È stato utile?

Soluzione

String.fromCharCodes(List<int> charCodes) è probabilmente quello che stai cercando.

  List<int> charCodes = const [97, 98, 99, 100];
  print(new String.fromCharCodes(charCodes));
.

Altri suggerimenti

È possibile utilizzare DART: Converti Library che fornisce un UTF-8 Codec:

import 'dart:convert';

void main() {
  List<int> charCodes = [97, 98, 99, 100];
  String result = UTF8.decode(charCodes);
  print(result);
}
.

Come menzionato String.fromCharCodes(List<int> charCodes) è probabile ciò che stai cercando se si desidera convertire i caratteri Unicode in una stringa.Se tuttavia tutto ciò che volevi era unire l'elenco in una stringa è possibile utilizzare Strings.join(List<String> strings, String separator).

Strings.join([1,2,3,4].map((i) => i.toString()), ","))  // "1,2,3,4"
.

È possibile utilizzare la libreria dart:convert che fornisce un codec UTF-8 ma assicurarsi di utilizzare UTF8 tutto piccolo per utilizzare i suoi metodi.

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);
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top