`java.nio.charset.StandardCharsets #deccode(ByteBuffer)`不删除所有不需要的字符

时间:2014-02-14 17:58:05

标签: java character-encoding

我正在从几个文件中读取纯文本数据,并将此数据提供给自然语言处理(NLP)模块。 NLP模块无法处理所有unicode字符,因此我使用以下代码将文本转换为UTF-8编码:

byte[] encoded = Files.readAllBytes(path);
return StandardCharsets.UTF_8.decode(ByteBuffer.wrap(encoded)).toString();

其中path是我想要的文本文件的位置。

但是,NLP模块会抛出错误,因为它会遇到� (U+FFFD, decimal: 65533)。从javadoc,我看到了

  

此方法始终使用此charset的默认替换字节数组替换格式错误的输入和不可映射字符序列。

那么为什么它会保留' '字符?

0 个答案:

没有答案