当前位置:Linux教程 - Php - 繁体中文转换成简体中文

繁体中文转换成简体中文

繁体中文转换成简体中文
2004-03-01 15


Q : 繁体中文转换成简体中文
主要解答者: _Shakespeare 提交人: happyboyshmily
感谢: _Shakespeare
审核者: _Shakespeare 论坛对应贴子: 查看
     A :  

由于是拷贝的别人数据库中的东西,是繁体。有很多好东西不舍得放掉怎么把它转换一下啊。各位救命啊。  
---------------------------------------------------------------  

<?    
////////////////////////////////////////////  
//作者:                                        网络骑士              //  
//联系方式:[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)  是主函数。