※ 引述《"Tomas Kang" <hmkang@ms2.hinet.net>, 看板: Programming》之銘言:
: 愛荷普雷 <ihpled.bbs@bbs.cs.nthu.edu.tw> 次寫入到主題
: > 那請問哪裡可以找得到Big5+和GB碼的表呢?
: > 或是有什麼程式的code?
: 事實上, 除非是寫世界上第一套繁體轉簡體的軟體, 使得作者必須要自己想辦
: 法建這個對照表之外, 其他的人, 都可以利用已有的轉換軟體來自行建立對照
: 表的! 只要將所有的繁體字依內碼序產生於一文字檔中(如 "一乙丁七乃...")
: 再利用這個現成的轉換程式來轉換, 就可取得這個對照表了.
在 win32 api, 或是 java 都有各種 code 轉換的 api...
下面是我用 java 寫的...
不知道有沒有問題就是了....
執行結果:
S:\zz\Java\test\gbb5>d:java Main | MORE
b5=0xa1,40|gb=0xa1,a1|unicode=0x0,30
b5=0xa1,41|gb=0xa3,ac|unicode=0xc,ff
b5=0xa1,42|gb=0xa1,a2|unicode=0x1,30
b5=0xa1,43|gb=0xa1,a3|unicode=0x2,30
b5=0xa1,44|gb=0xa3,ae|unicode=0xe,ff
b5=0xa1,46|gb=0xa3,bb|unicode=0x1b,ff
b5=0xa1,47|gb=0xa3,ba|unicode=0x1a,ff
.............
source code:
public class Main
{
public static void main(String[] args)
{
byte big5[]=new byte[3];
big5[2]=0;
for (int i=0x80; i<256; i++)
for (int j=0; j<256; j++)
{
big5[0]=(byte)i;
big5[1]=(byte)j;
try{
String a=new String(big5,"Big5");
byte unicode[]=a.getBytes("UnicodeLittle");
byte gb[]=a.getBytes("GBK");
if (gb[1]==0)
continue;//no such code...
System.out.println
("b5=0x"+Integer.toHexString((int)big5[0]&0xff)
+","+Integer.toHexString((int)big5[1]&0xff)+"|gb=0x"
+Integer.toHexString((int)gb[0]&0xff)
+","+Integer.toHexString((int)gb[1]&0xff)+"|unicode=0x"
+Integer.toHexString((int)unicode[2]&0xff)
+","+Integer.toHexString((int)unicode[3]&0xff)
);
} catch (java.io.UnsupportedEncodingException ex)
{}
}
}
}
--
※ Origin: 鳥窩 (BirdNest.infoX.Net) ◆ From: 210.243.146.1