Flutter pdf Uint8List 转 String

问题描述 投票:0回答:1

我有一个 Uint8List ,其中包含 pdf 的信息。我需要将此信息转换为字符串,以便保存 pdf 信息以供以后使用。但是,该过程存在问题,并且 pdf 信息中断。这是保存代码:

Future<void> setFormPdf(File pdf)async{
    final String pdfKey = _getKey('pdf_name');
    final bytesData = pdf.readAsBytesSync();
    final pdfData = utf8.decode(bytesData, allowMalformed: true);
    await storageConnector.setString(pdfData, pdfKey);
}

如果我不使用参数allowMalformed true的utf8.decode方法,应用程序会抛出有关utf8编码的异常。

稍后,当我要恢复 pdf 信息时,我使用下一个代码

final pdfPath = await getTemporaryPath('pdf_name.pdf');
final pdfData = File(pdfPath);
final String pdfKey = _getKey('pdf_name');
final stringPdf = await storageConnector.getString(pdfKey);
final bytesPdf = utf8.encode(stringPdf);
await pdfData.writeAsBytes(bytesPdf, flush: true);

那么,我该怎么办?我必须使用另一种方法将 Uint8List 转换为 String 吗?

flutter dart pdf uint8list
1个回答
0
投票

我找到了解决方案。我只需使用方法

Uint8List
String.fromCharCodes(bytesData)
解码为字符串,并且必须使用方法
Uint8List.fromList(stringPdf.codeUnits)
再次对字符串信息进行编码。

© www.soinside.com 2019 - 2024. All rights reserved.