搜索
首页php教程php手册PHP解码unicode编码中文字符代码示例,

PHP解码unicode编码中文字符代码示例,

Jun 13, 2016 am 09:27 AM
phpunicode中文代码字符示例编码解码

PHP解码unicode编码中文字符代码示例,

在抓取某网站数据,结果在数据包中发现了一串编码的数据:"......\u65b0\u6d6a\u5fae\u535a......", 这其实是中文被unicode编码后了的数据,想解码出中文来。

解决方案:

方案A(稳定版+推荐):

<span>function</span> replace_unicode_escape_sequence(<span>$match</span><span>) {
</span><span>return</span> mb_convert_encoding(<span>pack</span>('H*', <span>$match</span>[1]), 'UTF-8', 'UCS-2BE'<span>);
}
</span><span>$name</span> = '\u65b0\u6d6a\u5fae\u535a'<span>;
</span><span>$str</span> = <span>preg_replace_callback</span>('/\\\\u([0-9a-f]{4})/i', 'replace_unicode_escape_sequence', <span>$name</span><span>);
</span><span>echo</span> <span>$str</span>; <span>//</span><span>输出: 新浪微博
// www.jbxue.com 脚本学堂
//咱将上述方案A给封装起来~~~(方案A稳定版+升级+推荐)</span>
<span>class</span><span> Helper_Tool
{
</span><span>static</span> <span>function</span> unicodeDecode(<span>$data</span><span>)
{ 
</span><span>function</span> replace_unicode_escape_sequence(<span>$match</span><span>) {
</span><span>return</span> mb_convert_encoding(<span>pack</span>('H*', <span>$match</span>[1]), 'UTF-8', 'UCS-2BE'<span>);
} 

</span><span>$rs</span> = <span>preg_replace_callback</span>('/\\\\u([0-9a-f]{4})/i', 'replace_unicode_escape_sequence', <span>$data</span><span>);

</span><span>return</span> <span>$rs</span><span>;
} 
}
</span><span>//</span><span>调用</span>
<span>$name</span> = '\u65b0\u6d6a\u5fae\u535a'<span>;
</span><span>$data</span> = Helper_Tool::unicodeDecode(<span>$name</span>); <span>//</span><span>输出新浪微博</span>

小贴士:多翻翻国外的php教程,很有帮助哦。


方案B(次推荐):

<?<span>php
</span><span>function</span> unicodeDecode(<span>$name</span><span>){
</span><span>$json</span> = '{"str":"'.<span>$name</span>.'"}'<span>;
</span><span>$arr</span> = json_decode(<span>$json</span>,<span>true</span><span>);
</span><span>if</span>(<span>empty</span>(<span>$arr</span>)) <span>return</span> ''<span>; 
</span><span>return</span> <span>$arr</span>['str'<span>];
} // www.jbxue.com
</span><span>$name</span> = '\u65b0\u6d6a\u5fae\u535a'<span>;
</span><span>echo</span> unicodeDecode(<span>$name</span>); <span>//</span><span>输出: 新浪微博 </span>

对于方案B, 注意事项, 在好友 XAR (猛戳XAR博客) 的技术支持下,总结出要处理的字符串(即传递给函数unicodeDecode的参数$name的内容中一定不能包含单引号,否则就会导致解析失败, 所以有必要的话可以借助 str_replace()函数将非法字符格式化为合格字符)

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器