今天無意中看到老王的技術手冊中對 unicode 字符串的轉換方法。
才想起以前自己做的一個轉換程序時,也碰到過這樣的問題,幾乎被遺忘了。避免忘記,與大家分享一下這兩種方法。
老王掘出來的被遺忘的mb_convert_encoding方法:mb_convert_encoding(’醉爱’, ‘UTF-8′, ‘HTML-ENTITIES’);
我以前做的一個方法,對比上面的來說,很笨。不過在沒有 mb 擴展的時候還是可以參考一下的。
function unescape($str){
$str = rawurldecode($str);
preg_match_all(”/(\d+);/U”,$str,$r);
$arr = $r[1];
$cstr = array();
foreach($arr as $number){
$cstr[] = iconv(”UCS-2″,”GBK”,pack(”n”,$number));
}
return join(”",$cstr);
}
unescape(’醉爱’);