hibyte lobyte makeunicode 250 65 57345
我得到了这个表,而hibyte和lobyte是一些可能使用big5或GBK编码的汉字,hibyte是高字节,而lobyte是低字节。
我认为unicode可能是unicode中的一些编码,对应于带有hibyte和lobyte的big5 / GBK字符。
但是在我尝试显示之后,它们显示出不同的性格,一定有一些问题,有人可以帮助我吗?
答案 0 :(得分:1)
我真的不明白你想要什么,但是从你的高字节和低字节,我得到它来打印一个汉字:
byte[] bytes = {(byte)250, (byte)65};
String str = new String(bytes, "GBK");
System.out.println(str); // prints: 鶤
System.out.println((int)str.charAt(0)); // prints: 40356
我不知道你的“57345”来自哪里
答案 1 :(得分:0)
5秒的谷歌搜索出现http://www.chinesecomputing.com/encodings/index.html。 将big5或GBK转换为unicode只是身份映射。我不确定你的字节是做什么的,但是,250 * 256 + 65 = 64065,而不是57345。
答案 2 :(得分:0)
57345是十六进制的0xE001,没有定义Unicode字符(参见完整列表:http://www.unicode.org/Public/UNIDATA/UnicodeData.txt)
但如果你做250 * 256 + 65,你会得到0xFA41,这是
FA41;CJK COMPATIBILITY IDEOGRAPH-FA41;Lo;0;L;654F;;;;N;;;;;
即一些亚洲雕文。可能是,就是这样?
答案 3 :(得分:0)
与newacct的答案类似,但只是为了表明它也为其他中文编码打印了这个字符:
byte[] b = new byte[] {(byte)250,(byte)65};
String s = new String(b,"GB18030");
OutputStreamWriter fos = new OutputStreamWriter(new FileOutputStream(new File("c:\\a.html")),"GB18030");
fos.write(s);
fos.close();
打印鹍
答案 4 :(得分:0)
Big5的第一个字节(hibyte)的范围是0xA1~0xF9;而GBK是0x81~0xFE。
显然,它不是用Big5编码的。它可能是GBK / GB18030。
但GK18030向下兼容GBK。