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