byte[] byteArr1 = {(byte)0x8E,(byte)0x62};
字节数组由 BIG5 中生僻字的字节组成。
String out = new String(byteArr1, "ISO-8859-1");
在这里,我通过将字符串变量的编码转换为 ISO-8859-1 来为其分配字节。 但分配后我的十六进制值从 (8E 62) 更改为 (3F 62)。因此我的输出字符串发生了变化。
提前谢谢您。
最佳答案
你看过吗here ?
创建字符串时提供的编码必须是底层字节数组的编码。您总是从某种东西转换为 Unicode。在您的情况下,您应该尝试 "Big5"
而不是 "ISO-8859-1"
Java 字符串始终是 unicode(字符串类是 UTF-16),因此无需复制页。
关于java - JAVA中汉字生僻字从UTF8到BIG5的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13740719/