问题背景:

晚上在抓取某网站数据,结果在数据包中发现了这么一串编码的数据:"......\u65b0\u6d6a\u5fae\u535a......", 这其实是中文被unicode编码后了的数据,我现在就是想解码出中文来,上度娘搞了半天,试了很多的姿(方)势(法),终于搞定了。

解决方案:

呵呵,老外就是给力啊, 猛戳这里看老外给的解决方案

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

function replace_unicode_escape_sequence($match) {

return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE');

}

$name = '\u65b0\u6d6a\u5fae\u535a';

$str = preg_replace_callback('/\\\\u([0-9a-f]{4})/i', 'replace_unicode_escape_sequence', $name);

echo $str; //输出: 新浪微博

//咱将上述方案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 = '\u65b0\u6d6a\u5fae\u535a';

$data = Helper_Tool::unicodeDecode($name); //输出新浪微博

方案B(次推荐):

function unicodeDecode($name){

$json = '{"str":"'.$name.'"}';

$arr = json_decode($json,true);

if(empty($arr)) return '';

return $arr['str'];

}

$name = '\u65b0\u6d6a\u5fae\u535a';

echo unicodeDecode($name); //输出: 新浪微博

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

php输出字符unicode码,PHP解码unicode编码的中文字符代码分享相关推荐

  1. Java黑皮书课后题第4章:*4.9(给出字符的Unicode码)编写程序,得到一个字符的输入,然后显示其Unicode值

    *4.9(给出字符的Unicode码)编写程序,得到一个字符的输入,然后显示其Unicode值 题目 题目概述 运行示例 破题 代码 题目 题目概述 *4.9(给出字符的Unicode码)编写程序,得 ...

  2. UNICODE工程中,由十六进制的unicode字符内码转换成unicode字符

    UNICODE工程中,由十六进制的unicode字符内码转换成unicode字符(双字节) 这段程序片段是根据"一种字符串转化为16进制显示的算法"(http://www.cppb ...

  3. tinyxml 读取文本节点_在Windows下使用TinyXML-2读取UTF-8编码包含中文字符的XML文件...

    TinyXML-2 是一个用 C++ 开发的小巧.高效的 XML 解析工具,它在 GitHub 网站上的链接为: https://github.com/leethomason/tinyxml2 .它的 ...

  4. unicode解码php,PHP解码unicode编码的中文字符

    问题背景: 晚上在抓取某网站数据,结果在数据包中发现了这么一串编码的数据:"......\u65b0\u6d6a\u5fae\u535a...... 如何解码unicode编码的字符?[好使 ...

  5. 汉字编码(【Unicode】 【UTF-8】 【Unicode与UTF-8之间的转换】 【汉字 Unicode 编码范围】【中文标点Unicode码】【GBK编码】【批量获取汉字UNICODE码】)

    参考博客: Unicode与UTF-8互转(C语言实现):http://blog.csdn.net/tge7618291/article/details/7599902 汉字 Unicode 编码范围 ...

  6. 使用unicode编码识别中文字符、字母和数字,包括生僻汉字

    查询网络上如何识别中文字符的帖子,发现大部分只判断了常用汉字,即Unicode范围为0x4E00 ~ 0x9FA5. unicode编码最新版本是2009年9月出版的5.2版,对汉字又进行了扩充.以往 ...

  7. Unicode码------二个字节编码的系统

    Unicode码:Unicode码也是一种国际标准编码,采用二个字节编码 它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言.跨平台进行文本转换.处理的要求. Unicode编码则是 ...

  8. 编码:中文字符转ASCII码

    各位知道,一个中文字符站两个字符宽度,有的时候输出ascii时会有中文乱码,所以我就把ASCII搭配可能出现的字符遍历了出来,比如"我"是206+210:如此输出:printf(& ...

  9. [macOS]_[打开GBK-ANSI编码的中文字符文件乱码解决办法]

    场景 在中文Windows系统里使用VS开发时,它默认保存的.h,.cpp格式就是ANSI(GBK)编码, 这时如果我们做模块移植到macOS时,用TextEdit或者Xcode打开这个源码文件,如果 ...

最新文章

  1. Map-Reduce的过程解析
  2. 7 个致命的 Linux 命令
  3. 谷歌技术三宝之BigTable
  4. sonar 上安装插件之后,展示的代码规则
  5. Ext GrdPanel多种取值方式
  6. 谷歌虚拟服务器申请,【美国podserver.info】免费300M虚拟主机空间申请使用教程
  7. python基础笔记_python基础学习笔记
  8. 自己动手「焊」键盘,使用Python编写,一键放连招不在话下
  9. 透明加密tde_如何在SQL Server中配置透明数据加密(TDE)
  10. [VB]多级目录创建函数,支持很深的目录创建。
  11. 小熊在线一键重装系统教程
  12. nvidia卸载程序无法继续运行_nvidia安装程序无法继续 不兼容怎么办 nvidia安装程序无法继续安装怎么办...
  13. uniapp中使用百度名片识别接口或名片全能王识别接口
  14. PHP简单的手机验证码验证过程
  15. go 字符转ASCII 字符转成数字
  16. ESP-Hosted 入门介绍 使用指南
  17. 灰度直方图及直方图均衡化的MATLAB实现
  18. 华为或成韩国电信最大5G设备供应商!
  19. android setMargin失效不起作用
  20. 项目经理成长之路---PMP、管理知识、项目文档、项目管理软件工具、PPT、WORD

热门文章

  1. Spring Boot的自动装配原理
  2. python3.X出现关于模块(i18n)的不能使用的解决方法
  3. ISO七层参考模型, TCP/IP
  4. 20Spring切面的优先级
  5. struts2 s:selects:radio 标签用法
  6. java技术秘籍 转摘
  7. Device Tree Usage(转)https://elinux.org/Device_Tree_Usage
  8. Beetl模板 [记录]
  9. Add_List2Dictionay
  10. 7.2 高速缓冲存储器-Cache