RandomAccessFile读取ISO-8859-1

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

我有一个包含ISO-8859-1字符(åäö)的文件的RandomAccessFile读数。但是当在文件上使用seek()和readLine()时,我会得到aagÃ¥rd而不是aagård。任何线索为什么会这样?

java iso-8859-1 randomaccessfile
1个回答
0
投票

ReadLine不支持UTF格式,如javadoc:https://docs.oracle.com/javase/7/docs/api/java/io/RandomAccessFile.html#readLine()

从此文件中读取下一行文本。此方法从当前文件指针开始连续读取文件中的字节,直到它到达行终止符或文件末尾。通过取字符的低八位的字节值并将字符的高八位设置为零,将每个字节转换为字符。因此,此方法不支持完整的Unicode字符集。

请尝试使用ReadUTF()

从此文件中读取字符串。该字符串已使用修改的UTF-8格式进行编码。

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