java - 在Java中读取带有重音字符的文件

标签 java encoding

我遇到了两个特殊字符,它们似乎没有被 ISO-8859-1 字符集涵盖,即它们没有进入我的程序。

德语 ß 和挪威语 ø

我正在阅读如下文件:

FileInputStream inputFile = new FileInputStream(corpus[i]);
InputStreamReader ir = new InputStreamReader(inputFile, "ISO-8859-1") ;

有没有一种方法可以让我读取这些字符而无需应用手动替换作为解决方法?

[编辑]

这是它在屏幕上的样子。请注意,我对其他口音没有问题,例如è 和很多...

enter image description here

最佳答案

这两个字符都出现在 ISO-Latin-1 中(检查我的名字,看看我为什么调查这个)。

如果没有正确读入字符,最可能的原因是文件中的文本没有以该编码保存,而是以其他编码保存。

根据您的操作系统和文件来源,可能的编码可能是 UTF-8 或 Windows 代码页,如 850 或 437。

最简单的方法是使用十六进制编辑器查看文件并报告为这两个字符保存的确切值。

关于java - 在Java中读取带有重音字符的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5844845/

相关文章:

java - 为什么我在 Maven 中收到 "401 Unauthorized"错误?

algorithm - 为什么分支位移的 "start small"算法不是最优的?

java - 如何读取不同编码函数的文件?

java - "(someString) Tj"到 java 字符串编码问题 (PDFBox)

javascript - Android 中的 Uri.encode() 是否等同于 Javascript 中的 encodeURIComponent()?

php - 使用 PHP 向 Hotmail 发送电子邮件时的编码问题

java - Jbutton 带填充的隐形边框

java - 重写compareTo有什么影响?

java - 在 Java 中,为什么 Array 的类构造函数是私有(private)的?

java - 初始化基元数组