<?
/**** 繁体<==>简体 ****//**
完整的文件到 http://flyspace.cepiec.cn/download/gb2big5.zip下载*/// 将码表予装入内存
$filename = "big5-gb.table";
$fp = fopen($filename, "rb");
$big5 = fread($fp,filesize($filename));
fclose($fp);
$filename = "gb-big5.table";
$fp = fopen($filename, "rb");
$gb = fread($fp,filesize($filename));
fclose($fp);/**
Big5码转换成GB码
*/
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码转换成Big5码
*/
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;
}?>
<?
/**** 测试 ****/
$a = "啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨";
echo "原简体 $a<br>";
//$a = "摆甁玼玸絁砾魔窯︺锚稲筰綽";
//echo "原繁体 $a<br>";
//$a=big52gb($a);
//echo "转简体 $a<br>";
$a=gb2big5($a);
echo "转繁体 $a<br>";
?>

解决方案 »

  1.   

    我是用OB一起处理的!http://web.20.com.hk 是测试.感觉就是慢了点! 是一个字一个字的判断,再一个一个的处理.
      

  2.   

    gb2big5.table这个字库自己下吧!地址是http://www.wodejia.net/tech/gb-big5.tablefunction gb2big5($Text) { $fp = fopen("gb-big5.table", "r"); $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{ fseek($fp,($h-160)*510+($l-1)*2); $gb=fread($fp,2); } $Text[$i]=$gb[0]; $Text[$i+1]=$gb[1]; $i++; } }fclose($fp); return $Text;} ?>该函数可以将简体字符串转化为繁体字符串。 gb-big5.table 下载地址:http://www.wodejia.net/tech/gb-big5.table 四、怎么用这个函数   例如:<?$a="陈"; $a=gb2big5($a); echo $a;?>