我网站用户与discuz结合。
网站编码:utf-8
discuz编码:gbk
现在用户登陆后,从网站直接进入论坛、博客 http://bbs.yiwu2.com/space.php?username=dtaot
后面的参数为 英文http://bbs.yiwu2.com/space.php?username=english可以,
http://bbs.yiwu2.com/space.php?username=中文 就不行,点开连接后 后面的中文 变成乱码
请问下怎么在utf-8页面 转换下这条连接参数的编码
网站编码:utf-8
discuz编码:gbk
现在用户登陆后,从网站直接进入论坛、博客 http://bbs.yiwu2.com/space.php?username=dtaot
后面的参数为 英文http://bbs.yiwu2.com/space.php?username=english可以,
http://bbs.yiwu2.com/space.php?username=中文 就不行,点开连接后 后面的中文 变成乱码
请问下怎么在utf-8页面 转换下这条连接参数的编码
function encodeURIComponent($text) {
preg_match_all( "/[\x81-\xfe]?./ ",$text,$regs);
$rtext = " ";
foreach($regs[0] as $v) {
$ch = iconv( "gb2312 ", "UTF-8 ",$v);
$rtext .= sprintf( "%%%02X%%%02X%%%02X ",ord($ch[0]),ord($ch[1]),ord($ch[2]));
}
return $rtext;
} function escape($str){
preg_match_all( "/[\x80-\xff]. ¦[\x01-\x7f]+/ ",$str,$newstr);
$ar = $newstr[0];
foreach($ar as $k=> $v){
if(ord($ar[$k])> =127){
$tmpString=bin2hex(iconv( "GBK ", "ucs-2 ",$v));
if (!eregi( "WIN ",PHP_OS)){
$tmpString = substr($tmpString,2,2).substr($tmpString,0,2);
}
$reString.= "%u ".$tmpString;
} else {
$reString.= rawurlencode($v);
}
}
return $reString;
}
function unescape($str) {
$str = rawurldecode($str);
preg_match_all( "/(?:%u.{4}) ¦&#x.{4}; ¦&#\d+; ¦.+/U ",$str,$r);
$ar = $r[0];
foreach($ar as $k=> $v) {
if(substr($v,0,2) == "%u "){
if (!eregi( "WIN ",PHP_OS)){
$tmpString = "%u ".substr($v,4,2).substr($v,2,2);
}
$ar[$k] = iconv( "UCS-2 ", "GB2312 ",pack( "H4 ",substr($tmpString,-4)));
}
elseif(substr($v,0,3) == "&#x ")
$ar[$k] = iconv( "UCS-2 ", "GB2312 ",pack( "H4 ",substr($v,3,-1)));
elseif(substr($v,0,2) == "&# ") {
$ar[$k] = iconv( "UCS-2 ", "GB2312 ",pack( "n ",substr($v,2,-1)));
}
}
return join( " ",$ar);
}
自己选,注意编码