У меня есть некоторые данные (вероятно, семейство ISO8859 ...), поступающие через сервер IBM (преобразованный из IBM в Oracle), как показано ниже. Мне нужно преобразовать эти байты в строку. Но не может напечатать полную строку. Просто показывает какой-то мусорный характер.
List<int> bytesIBM = [135, 128, 167, 166, 141, 152, 159, 158, 148, 153, 129, 154];
String s = new String.fromCharCodes(bytesIBM);
print("_ibm: $s");
print("-------------------------------");
И вывод:
_ibm: §¦ÂÂÂÂÂÂÂ
Как преобразовать байты типов символов IBM в строку в Dart?
Обновление:
Если я использую это, я получаю ошибку:
List<int> bytesIBM = [135, 128, 167, 166, 141, 152, 159, 158, 148, 153, 129, 154];
String s = utf8.decode(bytesIBM);
print("_ibm: $s");
print("-------------------------------");
Ошибка:
Unhandled exception:
FormatException: Bad UTF-8 encoding 0x87 (at offset 0)
#0 _Utf8Decoder.convert (dart:convert/utf.dart:568:13)
#1 Utf8Decoder.convert (dart:convert/utf.dart:344:13)
#2 Utf8Codec.decode (dart:convert/utf.dart:66:60)
#3 main (file:///home/capital/IdeaProjects/untitled/bin/main.dart:47:19)
<asynchronous suspension>
#4 _startIsolate.<anonymous closure> (dart:isolate/runtime/libisolate_patch.dart:287:32)
#5 _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:171:12)
Process finished with exit code 255