我有一个问题,我需要能够检测字节数组是否包含符合ISO-8859-1编码的字符.
我发现以下问题有用Java:如何确定流的正确字符集编码,但没有一个答案似乎完全回答我的问题.
我试图使用TikaEncodingDetector,如下所示
public static Charset guessCharset(final byte[] content) throws IOException {
final InputStream isx = new ByteArrayInputStream(content);
return Charset.forName(new TikaEncodingDetector().guessEncoding(isx));
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这种方法基于字节数组的内容做出不同的预测.例如,包含'h','e','l','l','o'的数组被确定为ISO-8859-1.'w','o','r','l','d'出现在IBM500,'a','b','c','d','e'产生UTF-8.
我想知道的是,我的字节数组是否正确验证了ISO-8859-1标准.对于执行这项任务的最佳方式的建议,我将不胜感激.