php应用pack函数转unicode为utf8

因为时常用到json_encode去处理数据,json_encode在处理字符串遇上中文时,会把中文转换成\u5371这种格式的字符串,如果想让它能正常显示中文,则可以用pack打包函数进行处理.
以下是将"\u5371\u9669"转成"危险"的代码,unicodeString这个函数,可以直接用在json_encode处理后的字符串上.

header("content-type:text/html;charset=utf-8");

$unicodeChar = "\u5371\u9669";

function unicodeString($str, $encoding=null) {
return preg_replace_callback('/\\\\u([0-9a-fA-F]{4})/u', create_function('$match', 'return mb_convert_encoding(pack("H*", $match[1]), "utf-8", "UTF-16BE");'), $str);
}

echo unicodeString($unicodeChar);

posted @ 2014-08-19 15:39  yJken的博客  阅读(302)  评论(0编辑  收藏  举报