该文件不在我的控制之下.大多数字节序列是有效的UTF-8,它不是ISO-8859-1(或其他编码).
我想尽可能多地提取尽可能多的信息.
该文件包含一些非法字节序列,应替换替换字符.
这不是一件容易的事情,它认为它需要一些关于UTF-8状态机的知识.
有没有类似的东西(商业或自由软件)?
谢谢
-stephan
解:
final BufferedInputStream in = new BufferedInputStream(istream);
final CharsetDecoder charsetDecoder = StandardCharsets.UTF_8.newDecoder();
charsetDecoder.onMalformedInput(CodingErrorAction.REPLACE);
charsetDecoder.onUnmappableCharacter(CodingErrorAction.REPLACE);
final Reader inputReader = new InputStreamReader(in, charsetDecoder);