Трябва да прочета във файл, който е записан в 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?