سؤال

لقد قرأت ملف وحصلت على نفسي قائمة من الأعداد الصحيحة.بالنسبة لمعظم عملي ، هذا ما أريد الحصول عليه ، ولكن في حالة واحدة أحتاج أيضا إلى تحويل بعض List<int> في String.

لتكون أكثر تحديدا ، أريد ترميز السلسلة في أوتف-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));

نصائح أخرى

يمكنك استخدام ثبة: تحويل المكتبة التي توفر الترميز أوتف-8:

import 'dart:convert';

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

كما ذكر String.fromCharCodes(List<int> charCodes) من المرجح ما كنت تبحث عنه إذا كنت ترغب في تحويل أحرف يونيكود إلى سلسلة.إذا كان كل ما تريده هو دمج القائمة في سلسلة يمكنك استخدامها Strings.join(List<String> strings, String separator).

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

يمكنك استخدام dart:convert المكتبة التي توفر الترميز أوتف-8 ولكن تأكد من استخدام يو تي إف 8 كلها صغيرة لاستخدام أساليبها.

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);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top