2009-10-08 106 views
0
 
hibyte lobyte makeunicode 
250  65  57345 

我得到了這張表,hibyte和lobyte是一些可能使用big5或GBK編碼的漢字,hibyte是hight字節,lobyte是低字節。有人可以幫我解決這個問題嗎?關於unicode

我認爲unicode可能是unicode中的一些編碼,對應於帶有hibyte和lobyte的big5/GBK字符。

但是我嘗試顯示後,它們顯示不同的字符,肯定有一些問題,有人能幫助我嗎?

+0

你在做什麼來顯示它們? – akf 2009-10-08 02:58:25

+0

不管是哪個平臺? – MemoryLeak 2009-10-08 03:03:48

回答

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;;;;; 

也就是說,一些亞洲字形。可能是,就是這樣?

+0

我相信U + E001是在私人使用區域。 – McDowell 2009-10-08 11:04:24

+0

是的,這就是我的意思。 – 2009-10-08 13:33:31

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

爲什麼不是byte [] bytes = {(byte)65,(byte)250}; ? ;)字節順序使所有的區別! – 2009-10-08 13:35:02

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(); 

打印

0

Big5的第一個字節(hibyte)的範圍是0xA1〜0xF9;而GBK爲0x81〜0xFE。

很明顯,它沒有用Big5編碼。它可能是GBK/GB18030。

但是GK18030向下兼容GBK。

相關問題