use php to parse the unicode passed by javascript’s escape()

Posted on

before using these code
set the html ‘s character set to utf8 first

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>


function ConvertToUTF8($ch){
  foreach($ch as $val){
  $val = intval(substr($val,2),16);
  if($val < 0x7F){ // 0000-007F
  $c .= chr($val);
  }elseif($val < 0x800) { // 0080-0800
  $c .= chr(0xC0 | ($val / 64));
  $c .= chr(0x80 | ($val % 64));
  }else{ // 0800-FFFF
  $c .= chr(0xE0 | (($val / 64) / 64));
  $c .= chr(0x80 | (($val / 64) % 64));
  $c .= chr(0x80 | ($val % 64));
  }
  }
  return $c;
}
function my_unicode_decode($str,$char_set)
{
  $conv_str = preg_replace_callback("/%u[0-9A-Za-z]{4}/",ConvertToUTF8,$str);
  return mb_convert_encoding($conv_str, $char_set, 'utf-8');
}

// t is passed from after javascript's escape() function
 echo urldecode( $_GET['t'] );
 echo urldecode ( "%u767D" ) ;
 echo htmlspecialchars(urldecode($_GET['t']));
 $str = my_unicode_decode($_GET['t'],'utf-8') ;
 echo $str ;

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s