求一个能解所有编码的unescape php function! 能解简体 繁体 日语 韩语 ISO-8859-1等编码的 unescape PHP函数!谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 function code2utf($num){ if($num<128) return chr($num); if($num<1024) return chr(($num>>6)+192).chr(($num&63)+128); if($num<32768) return chr(($num>>12)+224).chr((($num>>6)&63)+128) .chr(($num&63)+128); if($num<2097152) return chr(($num>>18)+240).chr((($num>>12)&63)+128) .chr((($num>>6)&63)+128).chr(($num&63)+128); return '';}function unescape($strIn, $iconv_to = 'UTF-8') { $strOut = ''; $iPos = 0; $len = strlen ($strIn); while ($iPos < $len) { $charAt = substr ($strIn, $iPos, 1); if ($charAt == '%') { $iPos++; $charAt = substr ($strIn, $iPos, 1); if ($charAt == 'u') { // Unicode character $iPos++; $unicodeHexVal = substr ($strIn, $iPos, 4); $unicode = hexdec ($unicodeHexVal); $strOut .= code2utf($unicode); $iPos += 4; } else { // Escaped ascii character $hexVal = substr ($strIn, $iPos, 2); if (hexdec($hexVal) > 127) { // Convert to Unicode $strOut .= code2utf(hexdec ($hexVal)); } else { $strOut .= chr (hexdec ($hexVal)); } $iPos += 2; } } else { $strOut .= $charAt; $iPos++; } } if ($iconv_to != "UTF-8") { $strOut = iconv("UTF-8", $iconv_to, $strOut); } return $strOut;} //这个能简体.日语 ISO字符 但繁体解不了function Unescape($str){ //$str=str_replace("%B4","´",$str); //$str=str_replace("%F6","ö",$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") $ar[$k] = iconv("UCS-2","utf-8",pack("H4",substr($v,-4))); elseif(substr($v,0,3) == "&#x") $ar[$k] = iconv("UCS-2","utf-8",pack("H4",substr($v,3,-1))); elseif(substr($v,0,2) == "&#") { $ar[$k] = iconv("UCS-2","utf-8",pack("n",substr($v,2,-1))); }}return join("",$ar);}//UNescape//这个能解繁体日语等语言 但解不了 ISO符号! 求助:第一次装apache+php,运行站点出现403错误! 这个错语是什么意思? 菜鸟望各位指点一下COOKIE设置过期时间的问题 如何实现“删除”功能? SmartTemplate的问题:cache无效! 请教大家一个sql语句的写法。 请问php4.30怎么访问通过联接传过来的变量? 根本性問題,高分~~~ 关于本地二级目录问题,谢谢帮助 原有的项目上新增个单独的页面调用原项目的数据库出错··急 HTML表单中文数据上传至数据库 出现乱码“???” 问个菜菜的问题,我这个PHP5到底与MySQL连接成功没有?
if($num<128)
return chr($num);
if($num<1024)
return chr(($num>>6)+192).chr(($num&63)+128);
if($num<32768)
return chr(($num>>12)+224).chr((($num>>6)&63)+128)
.chr(($num&63)+128);
if($num<2097152)
return chr(($num>>18)+240).chr((($num>>12)&63)+128)
.chr((($num>>6)&63)+128).chr(($num&63)+128);
return '';
}function unescape($strIn, $iconv_to = 'UTF-8') {
$strOut = '';
$iPos = 0;
$len = strlen ($strIn);
while ($iPos < $len) {
$charAt = substr ($strIn, $iPos, 1);
if ($charAt == '%') {
$iPos++;
$charAt = substr ($strIn, $iPos, 1);
if ($charAt == 'u') {
// Unicode character
$iPos++;
$unicodeHexVal = substr ($strIn, $iPos, 4);
$unicode = hexdec ($unicodeHexVal);
$strOut .= code2utf($unicode);
$iPos += 4;
}
else {
// Escaped ascii character
$hexVal = substr ($strIn, $iPos, 2);
if (hexdec($hexVal) > 127) {
// Convert to Unicode
$strOut .= code2utf(hexdec ($hexVal));
}
else {
$strOut .= chr (hexdec ($hexVal));
}
$iPos += 2;
}
}
else {
$strOut .= $charAt;
$iPos++;
}
}
if ($iconv_to != "UTF-8") {
$strOut = iconv("UTF-8", $iconv_to, $strOut);
}
return $strOut;
} //这个能简体.日语 ISO字符 但繁体解不了
function Unescape($str)
{
//$str=str_replace("%B4","´",$str);
//$str=str_replace("%F6","ö",$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")
$ar[$k] = iconv("UCS-2","utf-8",pack("H4",substr($v,-4)));
elseif(substr($v,0,3) == "&#x")
$ar[$k] = iconv("UCS-2","utf-8",pack("H4",substr($v,3,-1)));
elseif(substr($v,0,2) == "&#") {
$ar[$k] = iconv("UCS-2","utf-8",pack("n",substr($v,2,-1)));
}
}
return join("",$ar);
}//UNescape//这个能解繁体日语等语言 但解不了 ISO符号!