Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java查找文件编码_Java_Scala_Encoding_Utf 8_Ansi - Fatal编程技术网

如何使用Java查找文件编码

如何使用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 图

我正在尝试使用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
图书馆很旧,看起来没有合适的支持。

有很多答案,比如我们可以找到文件的编码


这些解决方案看起来不太好。根据@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);
  }