/ **** Traditional <==> 简体 **** /
/ **
Code table acquisition:
http://netcity.hinet.net/kstchieh/table.zip
There are two files in the package: BIG5-GB.TABLE, GB-BIG5.TABLE
Function GB2BIG5 is not detailed in detail because there is no BIG5 environment.
* /
// Make the code table into memory
$ filename = "BIG5-GB.TABLE";
$ fp = fopen ($ filename, "rb");
$ BIG5 = FREAD ($ FP, FILSIZE ($ FileName));
Fclose ($ fp);
$ filename = "gb-big5.table";
$ fp = fopen ($ filename, "rb");
$ GB = FREAD ($ FP, FILSIZE ($ FileName));
Fclose ($ fp);
/ **
BIG5 code conversion into GB code
* /
Function BIG52GB ($ text) {
Global $ BIG5;
$ MAX = Strlen ($ text) -1;
For ($ I = 0; $ i <$ max; $ i ) {
$ h = ORD ($ TEXT [$ I]);
IF ($ h> = 160) {
$ l = ORD ($ TEXT [$ I 1]);
IF ($ h == 161 && $ l == 64) {
$ GB = "";
} else {
$ P = ($ H-160) * 510 ($ L-1) * 2;
$ GB = $ BIG5 [$ P]. $ BIG5 [$ P 1];
}
$ Text [$ I] = $ gb [0];
$ Text [$ i 1] = $ GB [1];
$ i ;
}
}
RETURN $ TEXT;
}
/ **
GB code conversion to a BIG5 code
* /
Function GB2BIG5 ($ text) {
GLOBAL $ GB;
$ MAX = Strlen ($ text) -1;
For ($ I = 0; $ i <$ max; $ i ) {
$ h = ORD ($ TEXT [$ I]);
IF ($ h> = 160) {
$ l = ORD ($ TEXT [$ I 1]);
IF ($ h == 161 && $ l == 64) {
$ BIG = "";
} else {
$ P = ($ H-160) * 510 ($ L-1) * 2;
$ BIG = $ GB [$ P]. $ GB [$ P 1];
}
$ TEXT [$ I] = $ BIG [0];
$ TEXT [$ I 1] = $ BIG [1];
$ i ;
}
}
RETURN $ TEXT;
}
?>
/ **** Test **** /
$ a = "ah Aue 挨 唉 癌 癌 癌 矮 艾 艾"
ECHO "Original Simplified $ A
";
$ a = "摆 甁 玼 玸絁 玸絁 魔 魔";
Echo "Original Traditional $ A
";
$ a = BIG52GB ($ A);
Echo "Transparent body $ a
";
$ A = GB2BIG5 ($ A);
ECHO "Translucent $ a
";
?>