在抓取某网站数据,结果在数据包中发现了一串编码的数据:"......u65b0u6d6au5faeu535a......", 这其实是中文被unicode编码后了的数据,想解码出中文来。
解决方案:
方案A(稳定版+推荐):
function replace_unicode_escape_sequence($match) {return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE');}$name = 'u65b0u6d6au5faeu535a';$str = preg_replace_callback('/\\u([0-9a-f]{4})/i', 'replace_unicode_escape_sequence', $name);echo $str; //输出: 新浪微博// www.jbxue.com 脚本学堂//咱将上述方案A给封装起来~~~(方案A稳定版+升级+推荐)class Helper_Tool{static function unicodeDecode($data){ function replace_unicode_escape_sequence($match) {return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE');} $rs = preg_replace_callback('/\\u([0-9a-f]{4})/i', 'replace_unicode_escape_sequence', $data);return $rs;} }//调用$name = 'u65b0u6d6au5faeu535a';$data = Helper_Tool::unicodeDecode($name); //输出新浪微博