hibyte lobyte makeunicode 250 65 57345
我得到了這張表,hibyte和lobyte是一些可能使用big5或GBK編碼的漢字,hibyte是hight字節,lobyte是低字節。有人可以幫我解決這個問題嗎?關於unicode
我認爲unicode可能是unicode中的一些編碼,對應於帶有hibyte和lobyte的big5/GBK字符。
但是我嘗試顯示後,它們顯示不同的字符,肯定有一些問題,有人能幫助我嗎?
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