【发布时间】:2019-02-21 15:54:44
【问题描述】:
我有一个从包含 ISO-8859-1 字符(åäö)的文件中读取的 RandomAccessFile。但是当对文件使用 seek() 和 readLine() 时,我得到 aagård 而不是 aagård。任何线索这是为什么?
【问题讨论】:
标签: java iso-8859-1 randomaccessfile
我有一个从包含 ISO-8859-1 字符(åäö)的文件中读取的 RandomAccessFile。但是当对文件使用 seek() 和 readLine() 时,我得到 aagård 而不是 aagård。任何线索这是为什么?
【问题讨论】:
标签: java iso-8859-1 randomaccessfile
ReadLine 不支持 javadoc 中的 UTF 格式:https://docs.oracle.com/javase/7/docs/api/java/io/RandomAccessFile.html#readLine()
从此文件中读取下一行文本。这种方法先后 从文件中读取字节,从当前文件指针开始,直到 它到达行终止符或文件末尾。每个字节是 通过将字节的值取为较低的值来转换为字符 八位字符和设置的高八位 字符为零。因此,此方法不支持完整的 Unicode 字符集。
改用ReadUTF():
从此文件中读取一个字符串。该字符串已使用 修改后的 UTF-8 格式。
【讨论】: