<? 
////////////////////////////////////////////
//作者:                    网络骑士       //
//联系方式:[email protected] //
//所用技术:php                           //
//完成时间:2002-05-12                    //
///////////////////////////////////////////
function isbig5($code) 

if (strlen($code)>=2) 

$code=strtok($code,""); if (ord($code[0]) < 161) 

return (0); 

else 

if (((ord($code[1]) >= 64)&&(ord($code[1]) <= 126))||((ord($code[1]) >= 161)&&(ord($code[1]) <= 254))) 

return (1); 

else 

return (0); 



else 

return (0); 

} function big5offset($code) 

if (strlen($code) >= 2) 

$code=strtok($code,""); 
if ((ord($code[1]) >= 64)&&(ord($code[1]) <= 126)) 

return ((ord($code[0]) - 161) * 157 + (ord($code[1]) - 64)); 

if ((ord($code[1]) >= 161)&&(ord($code[1]) <= 254)) 

return ((ord($code[0]) - 161) * 157 + 63 + (ord($code[1]) - 161)); 


return (-1); 
} function wordtostring($code) 

return (chr(hexdec(substr($code,0,2))).chr(hexdec(substr($code,2,2)))); 
} function big5togb($code) 

include "data_big5.php"; 
$output=""; 
$length=strlen($code); 
$code=strtok($code,""); 
$idx=0; 
while ($idx < $length) 

$tmpStr=$code[$idx].$code[$idx+1]; if (isbig5($tmpStr)) 

$offset=big5offset($tmpStr); 
if (($offset >= 0)||($offset <= 14757)) 

$output.=wordtostring($big5order[$offset]); 
$idx++; 

else 

$output.= $code[$idx]; 


else 

$output.= $code[$idx]; 

$idx++; 

return ($output); 

?> 我们学校的网站和香港的一个交换数据库,遇到了类似的问题,上面是我写的一个函数。写的时候是参考了函数手册完成的,function big5togb($code) 是主函数。
浅妄薄见,望与斟酌