1

byte[] byteArr1 = {(byte)0x8E,(byte)0x62};

字节数组由 BIG5 中的稀有汉字字节组成。

String out = new String(byteArr1, "ISO-8859-1");

在这里,我通过将其编码转换为 ISO-8859-1 来将字节分配给我的字符串变量。但是在分配我的十六进制值后,从(8E 62)变为(3F 62)。因此我的输出字符串发生了变化。

先感谢您。

4

1 回答 1

2

你看过这里吗?

创建 String 时提供的编码必须是底层字节数组的编码。您总是在从某种东西转换为 Unicode。在你的情况下,你应该尝试"Big5"而不是"ISO-8859-1"

Java 字符串始终是 unicode(字符串类是 UTF-16),因此无需复制。

于 2012-12-06T09:46:12.337 回答