BdfReaderImpl has undefined behaviour for strings with illegal byte sequences
BdfReaderImpl uses the
String(byte bytes, int offset, int length, String charsetName) constructor to convert UTF-8 byte arrays into strings. The javadoc says "The behavior of this constructor when the given bytes are not valid in the given charset is unspecified. The CharsetDecoder class should be used when more control over the decoding process is required."
We have a
StringUtils.toUtf8(byte bytes) method with well-defined behaviour for this situation (illegal byte sequences are ignored), which we should probably be using here (and fuzz-testing).