有人可以帮我解决这个问题吗?关于unicode
hibyte lobyte makeunicode 250 65 57345
我得到了这张表,hibyte和lobyte是一些可能使用big5或GBK编码的汉字,hibyte是hight字节,lobyte是低字节。有人可以帮我解决这个问题吗?关于unicode
我认为unicode可能是unicode中的一些编码,对应于带有hibyte和lobyte的big5/GBK字符。
但是我尝试显示后,它们显示不同的字符,肯定有一些问题,有人能帮助我吗?
5秒钟的谷歌搜索结果变成http://www.chinesecomputing.com/encodings/index.html。 将big5或GBK转换为unicode只是身份映射。我不确定你在处理你的字节是250 * 256 + 65 = 64065,而不是57345.
是的,他们自己编码... – MemoryLeak 2009-10-08 06:36:07
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;;;;;
也就是说,一些亚洲字形。可能是,就是这样?
我相信U + E001是在私人使用区域。 – McDowell 2009-10-08 11:04:24
是的,这就是我的意思。 – 2009-10-08 13:33:31
我真的不明白你想要什么,但是从你的高字节和低字节,我把它打印中国性状:
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”的由来从
为什么不是byte [] bytes = {(byte)65,(byte)250}; ? ;)字节顺序使所有的区别! – 2009-10-08 13:35:02
类似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();
打印鹍
Big5的第一个字节(hibyte)的范围是0xA1〜0xF9;而GBK为0x81〜0xFE。
很明显,它没有用Big5编码。它可能是GBK/GB18030。
但是GK18030向下兼容GBK。
你在做什么来显示它们? – akf 2009-10-08 02:58:25
不管是哪个平台? – MemoryLeak 2009-10-08 03:03:48