如何使用Java查找文件编码
我正在尝试使用java程序查找文件的编码。但它总是提供UTF-8作为输出。即使它是一个ANSI文件如何使用Java查找文件编码,java,scala,encoding,utf-8,ansi,Java,Scala,Encoding,Utf 8,Ansi,我正在尝试使用java程序查找文件的编码。但它总是提供UTF-8作为输出。即使它是一个ANSI文件 import java.io.InputStream import java.io.FileInputStream import java.io.BufferedInputStream import java.io.InputStreamReader new InputStreamReader(new FileInputStream("FILE_NAME")).getEncoding 图
import java.io.InputStream
import java.io.FileInputStream
import java.io.BufferedInputStream
import java.io.InputStreamReader
new InputStreamReader(new FileInputStream("FILE_NAME")).getEncoding
图书馆很旧,看起来没有合适的支持。
有很多答案,比如我们可以找到文件的编码
这些解决方案看起来不太好。根据@Jörg W Mittag,我们无法确定文件的编码 在scala中,我不确定,但您是否尝试过alread lib
如果您还不知道文件的编码,就不可能找到它。例如,包含八位字节序列
0xA4 0x0D 0x0A
的文件可以在ISO8859-1中包含国际货币符号,后跟Windows换行符,也可以在ISO8859-15中包含欧元符号,后跟Windows换行符。包含八位字节序列的文件可以是ASCII、UTF-8、UTF-7、ISO8859-1、ISO8859-15、Windows-1252等格式的文本。编码不是数据的一部分,而是如何处理数据。您可能需要尝试不同的编码,并为真或假代码提供试金石测试false@JörgWMittag,那么为什么它们是声称可以提供文件编码的库呢。就像问题中提供的链接一样,很多人声称拥有很多东西。这并不意味着这是真的。我给你举了两个无法找到编码的例子,问问编写或提供文件的人。否则,这是一个概率问题。文本文件是为那些想要跟踪这些事情的专家准备的。其他专家和非专家不需要处理任意文本文件。
public static Charset guessCharset2(File file) throws IOException {
return CharsetToolkit.guessEncoding(file, 4096, StandardCharsets.UTF_8);
}