我正在从几个文件中读取纯文本数据,并将此数据提供给自然语言处理(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的默认替换字节数组替换格式错误的输入和不可映射字符序列。
那么为什么它会保留' '字符?