我需要读入一个用以下代码保存在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中读取已经使用UTF-16保存在Android Studio Java中的文件呢?
发布于 2019-09-19 01:55:23
使用utf package。
var bytes = await file.readAsBytes();
var decoder = Utf16BytesToCodeUnitsDecoder(bytes); // use le variant if no BOM
var string = String.fromCharCodes(decoder.decodeRest());发布于 2020-10-05 00:08:52
使用Base64。导入'dart:convert'.
var bytes = await file.readAsBytes();
final encoded = base64.encode(bytes);
debugPrint("onPressed " + encoded);https://stackoverflow.com/questions/57995904
复制相似问题