是否可以从无效的代码点在java中构造一个String?
java中的字符串str.getBytes(“utf8”)是否有任何方法可以返回无效的utf8编码?
上下文是我希望能够使用utf8编码将字符串序列化为字节数组,并希望能够将其反序列化为相同的字符串。
我想确定我的(de)序列化代码是否应首先检查字节数组是否是有效的utf8编码。
谢谢。
答案 0 :(得分:2)
您可以使用java.nio.charset
中的CharsetEncoder
和CharsetDecoder
类来精确控制字符和字节的来回转换方式。特别是,CharsetDecoder.onMalformedInput()
和CharsetDecoder.onUnmappableCharacter()
可让您定义应如何处理这些条件。 (在这些情况下,String
的{{1}}构造函数的行为未定义。)