PHP將uncode轉utf8,一行程式碼解決問題

至尊王者發表於2013-06-26

在很多場合能看到unicode編碼過的文字,如“\u6d3b\u52a8\u63a5\u53e3”,雖然程式會認識,但人眼無法閱讀,很不方便,網路上很多人寫了很多的轉換函式,但是一個比一個臃腫,終於發現用一行PHP程式碼解決的方案:

$str  = '{"success":true,"msg":"\u6d3b\u52a8\u63a5\u53e3"}';
echo $str= preg_replace("#\\\u([0-9a-f]+)#ie","iconv('UCS-2','UTF-8', pack('H4', '\\1'))",$str);

已經無法找到這行程式碼的原始出處,PHP原生的函式很多功能很強大,但很少人能運用好,真是遺憾。


如果服務端是自己寫的,聽說php5.4版本以上還可以用以下辦法解決:

echo json_encode("漢字", JSON_UNESCAPED_UNICODE);  

 

相關文章