Мне нужно прочитать файл, который был сохранен в Java Android Studio с этим кодом
fos = context.openFileOutput(filename, Context.MODE_PRIVATE);
ObjectOutputStream os = new ObjectOutputStream(fos);
os.writeObject(json);
os.close();
fos.close();
Оказывается, Java внутренне использует UTF-16 для кодирования символов. Теперь мне нужно прочитать эти файлы в Flutter SDK (с языком Dart)
file.readAsString(encoding: Latin1).then((str) => {
print(str)
}).catchError( (e) => {
print(e)
});
Однако кодировка Latin1 работает некорректно. Итак, я хочу прочитать это при использовании UTF-16, но кажется, что Dart просто не имеет этой функции или, по крайней мере, не то, что я могу найти.
Utf8Codec
существует, но нет ни Utf16Codec
, ни Encoding.getByName("UTF-16")
. Utf8, кстати, дает исключения, так что это тоже не вариант.
Итак, как я могу по-прежнему читать файлы в Dart, которые были сохранены в Android Studio Java с использованием UTF-16?