【发布时间】:2021-06-02 18:27:58
【问题描述】:
要读取我正在使用的 .txt 文件的文件内容
List<String> linesList = await file.readAsLines(encoding: latin1);
return linesList;
带有编码 UTF-8 的文件与上述代码完美配合。 但是对于编码 UTF-16LE,它返回一个长度为文件中行长度两倍的列表,但除了第一行之外都是空的。第一个索引包含 ÿþ#
【问题讨论】:
-
“使用编码 UTF-8 的文件运行良好......” 这似乎不太可能,因为您正在使用 Latin-1 编码而不是 UTF-8 读取文件。如果您想以这种方式读取 UTF-16LE 文件,那么您需要提供(并可能实现)一个 UTF-16LE
Encoding。 (将文件存储为 UTF-16 是个坏主意,应尽可能避免。) -
utf包中有一个 UTF16-LE 解码器。 pub.dev/packages/utf -
@jamesdlin 我没有创建这个文件。我正在使用从某些软件中导入的文件,然后从该文件中提取数据并将其保存在服务器上。
-
@RichardHeap ,我检查了你在评论中提到的 utf 包。它似乎很有用。我将对此进行调查并进行更新。谢谢:)
-
@RichardHeap 非常感谢。你提到了正确的颤振包。使用这个包,我能够从任何 utf 格式解析文件,并在应用程序中将其显示为字符串。再次非常感谢。这意味着很多:)