Re: [問題] 請問有關BIG5、Unicode之間的轉換

看板java作者 (Feng)時間19年前 (2006/02/26 02:54), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/5 (看更多)
: > b=s.getBytes("unicode"); : > for(int i=0;i<b.length;i++) System.out.print(b[i]+" "); : > } : > } : 你好^^ : 我的意思是並不知道"一"這個字 : 只收到BIG5的編碼 A440 (42048) : 想知道有無function可以呼叫 : 傳入 A440 (42048) : 可傳回"一"的 Unicode 編碼 4E00 : 謝謝~ 所以,你是要知道怎麼把42048變成字串(或char)的 "一". 可以參考下面的code. 不過,我想有兩點是你需要知道的  1. 你第一篇文章寫的 char c = (char) 42048 ; 若直接輸出c就是個 "?", 為什麼? 2. 為什麼我下面的new String(...)都加了"BIG5"這個參數? // 1 int code = 42048; byte[] tmpb = new byte[2]; tmpb[0] = (byte) ((code>>>8) & 0xff); tmpb[1] = (byte) ((code>>>0) & 0xff); String s1 = new String(tmpb,"BIG5"); System.out.println(s1); // 2 ByteArrayOutputStream bout = new ByteArrayOutputStream(4); DataOutputStream out = new DataOutputStream(bout); out.writeShort(code); out.writeShort(code+1); out.writeShort(code+2); out.close(); byte[] buf = bout.toByteArray(); String s2 = new String(buf,"BIG5"); System.out.println(s2); // 3 ByteArrayInputStream bin = new ByteArrayInputStream(buf); InputStreamReader in = new InputStreamReader(bin,"BIG5"); int code2=0; while ((code2=in.read())>=0) { System.out.println(code2); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.31.139.194
文章代碼(AID): #140AW2H7 (java)
文章代碼(AID): #140AW2H7 (java)