3

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

java中的String str.getBytes("utf8")有什么办法可以返回无效的utf8编码?

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

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

谢谢你。

4

1 回答 1

2

您可以使用CharsetEncoderCharsetDecoderjava.nio.charset来精确控制字符和字节的来回转换方式。特别是,CharsetDecoder.onMalformedInput()CharsetDecoder.onUnmappableCharacter()您定义应如何处理这些条件。(在这些情况下,采用 a 的String构造函数的行为byte[]是未定义的。)

于 2013-11-01T03:20:13.407 回答