php输出字符unicode码,PHP解码unicode编码的中文字符代码分享
问题背景:
晚上在抓取某网站数据,结果在数据包中发现了这么一串编码的数据:"......\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编码的中文字符代码分享相关推荐
- Java黑皮书课后题第4章:*4.9(给出字符的Unicode码)编写程序,得到一个字符的输入,然后显示其Unicode值
*4.9(给出字符的Unicode码)编写程序,得到一个字符的输入,然后显示其Unicode值 题目 题目概述 运行示例 破题 代码 题目 题目概述 *4.9(给出字符的Unicode码)编写程序,得 ...
- UNICODE工程中,由十六进制的unicode字符内码转换成unicode字符
UNICODE工程中,由十六进制的unicode字符内码转换成unicode字符(双字节) 这段程序片段是根据"一种字符串转化为16进制显示的算法"(http://www.cppb ...
- tinyxml 读取文本节点_在Windows下使用TinyXML-2读取UTF-8编码包含中文字符的XML文件...
TinyXML-2 是一个用 C++ 开发的小巧.高效的 XML 解析工具,它在 GitHub 网站上的链接为: https://github.com/leethomason/tinyxml2 .它的 ...
- unicode解码php,PHP解码unicode编码的中文字符
问题背景: 晚上在抓取某网站数据,结果在数据包中发现了这么一串编码的数据:"......\u65b0\u6d6a\u5fae\u535a...... 如何解码unicode编码的字符?[好使 ...
- 汉字编码(【Unicode】 【UTF-8】 【Unicode与UTF-8之间的转换】 【汉字 Unicode 编码范围】【中文标点Unicode码】【GBK编码】【批量获取汉字UNICODE码】)
参考博客: Unicode与UTF-8互转(C语言实现):http://blog.csdn.net/tge7618291/article/details/7599902 汉字 Unicode 编码范围 ...
- 使用unicode编码识别中文字符、字母和数字,包括生僻汉字
查询网络上如何识别中文字符的帖子,发现大部分只判断了常用汉字,即Unicode范围为0x4E00 ~ 0x9FA5. unicode编码最新版本是2009年9月出版的5.2版,对汉字又进行了扩充.以往 ...
- Unicode码------二个字节编码的系统
Unicode码:Unicode码也是一种国际标准编码,采用二个字节编码 它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言.跨平台进行文本转换.处理的要求. Unicode编码则是 ...
- 编码:中文字符转ASCII码
各位知道,一个中文字符站两个字符宽度,有的时候输出ascii时会有中文乱码,所以我就把ASCII搭配可能出现的字符遍历了出来,比如"我"是206+210:如此输出:printf(& ...
- [macOS]_[打开GBK-ANSI编码的中文字符文件乱码解决办法]
场景 在中文Windows系统里使用VS开发时,它默认保存的.h,.cpp格式就是ANSI(GBK)编码, 这时如果我们做模块移植到macOS时,用TextEdit或者Xcode打开这个源码文件,如果 ...
最新文章
- Map-Reduce的过程解析
- 7 个致命的 Linux 命令
- 谷歌技术三宝之BigTable
- sonar 上安装插件之后,展示的代码规则
- Ext GrdPanel多种取值方式
- 谷歌虚拟服务器申请,【美国podserver.info】免费300M虚拟主机空间申请使用教程
- python基础笔记_python基础学习笔记
- 自己动手「焊」键盘,使用Python编写,一键放连招不在话下
- 透明加密tde_如何在SQL Server中配置透明数据加密(TDE)
- [VB]多级目录创建函数,支持很深的目录创建。
- 小熊在线一键重装系统教程
- nvidia卸载程序无法继续运行_nvidia安装程序无法继续 不兼容怎么办 nvidia安装程序无法继续安装怎么办...
- uniapp中使用百度名片识别接口或名片全能王识别接口
- PHP简单的手机验证码验证过程
- go 字符转ASCII 字符转成数字
- ESP-Hosted 入门介绍 使用指南
- 灰度直方图及直方图均衡化的MATLAB实现
- 华为或成韩国电信最大5G设备供应商!
- android setMargin失效不起作用
- 项目经理成长之路---PMP、管理知识、项目文档、项目管理软件工具、PPT、WORD
热门文章
- Spring Boot的自动装配原理
- python3.X出现关于模块(i18n)的不能使用的解决方法
- ISO七层参考模型, TCP/IP
- 20Spring切面的优先级
- struts2 s:selects:radio 标签用法
- java技术秘籍 转摘
- Device Tree Usage(转)https://elinux.org/Device_Tree_Usage
- Beetl模板 [记录]
- Add_List2Dictionay
- 7.2 高速缓冲存储器-Cache