可以从无效的代码点构造java String吗?

时间:2013-11-01 00:46:57

标签: java unicode utf-8

是否可以从无效的代码点在java中构造一个String?

java中的字符串str.getBytes(“utf8”)是否有任何方法可以返回无效的utf8编码?

上下文是我希望能够使用utf8编码将字符串序列化为字节数组,并希望能够将其反序列化为相同的字符串。

我想确定我的(de)序列化代码是否应首先检查字节数组是否是有效的utf8编码。

谢谢。

1 个答案:

答案 0 :(得分:2)

您可以使用java.nio.charset中的CharsetEncoderCharsetDecoder类来精确控制字符和字节的来回转换方式。特别是,CharsetDecoder.onMalformedInput()CharsetDecoder.onUnmappableCharacter()可让您定义应如何处理这些条件。 (在这些情况下,String的{​​{1}}构造函数的行为未定义。)