Java 从文件中获取UTF-8字符串

Java 从文件中获取UTF-8字符串,java,io,Java,Io,我正在尝试处理一个包含下载的xml(html)文件的文件夹。 现在,这些文件是包含希伯来语的.txt文件,正如我打开文件时看到的那样 当我试图从文件中提取一个字符串来处理它时,所有的希伯来语都变成了胡言乱语。 有什么想法吗 String fileSource = ("path/path"); File folder= new File(fileSource); File[] listOfFiles = folder.listFiles(); for (File curr

我正在尝试处理一个包含下载的xml(html)文件的文件夹。 现在,这些文件是包含希伯来语的.txt文件,正如我打开文件时看到的那样

当我试图从文件中提取一个字符串来处理它时,所有的希伯来语都变成了胡言乱语。 有什么想法吗

String fileSource = ("path/path");
    File  folder= new File(fileSource);
    File[] listOfFiles = folder.listFiles();
    for (File currentFile : listOfFiles) {
        try {
            content = FileUtils.readFileToString(currentFile , "UTF-8");

如果我去把文件保存为UTF-8,它就会工作。但是我有很多这样的文件要处理。

我假设当你打开一个文件时,你的浏览器/文本编辑器会将它作为一个
ISO-8859-8
编码文件打开。当您另存为UTF-8时,这就是上述代码工作的原因

因此,代码需要以与浏览器/文本编辑器相同的方式打开文件

试一试

编辑:

由于我们不知道您的文件使用的编码,我们也可以尝试Windows 1255:

FileUtils.readFileToString(currentFile , Charset.forName("cp1255"));
根据维基百科的说法,这似乎是希伯来语的最新版本

Windows-1255希伯来语始终按逻辑顺序排列(与视觉顺序相反)。Microsoft希伯来语产品(Windows、Office和Internet Explorer)使逻辑顺序的希伯来语得以普遍使用,其结果是Windows-1255是网络上最常见的希伯来语编码,它取代了视觉顺序的ISO-8859-8,并优先于逻辑顺序的ISO-8859-8-I,因为它提供了元音点


尝试
FileUtils.readFileToString(当前文件,“ISO-8859-1”)如要运行配置并将其设置为参数?没用。。。还有其他建议吗?我没有得到问号,我得到的主要是“x”和一些其他符号。对不起,我的代码页部分关闭了;第8部分(
ISO-8859-8
)有拉丁/希伯来字母表,正如@Martin的回答所建议的。也许是
UTF-16
。在原始代码中尝试一下。如果这也不起作用,请参阅以下链接:。它将试探性地检测您正在使用的编码。@BarHoshen,在您读取文件后,您如何处理
内容
?您确定后处理使用了正确的字符集吗?JVM的默认字符集是什么?UTF-8是字符集。即使我只是想说,这也不好。我需要运行它并提取一些信息。顺便说一句,在朋友的帮助下,通过VB代码解决了这个问题,该代码将文件夹中的每个文件都转换为UTF-8。。但我仍然相信我的工作中有些地方出了问题,并试图找出它。在您将文件重新保存为UTF-8后,它就开始工作,这对我来说毫无意义。对我来说,这意味着原始文件实际上不是UTF-8。如果你把之前/之后的文件贴到某个地方,我可以快速查看一下。
FileUtils.readFileToString(currentFile , Charset.forName("cp1255"));