PHP 中转换 SGML 类语言为真实中文字符
来源:互联网 发布:win7数据库安装失败 编辑:程序博客网 时间:2024/06/10 02:52
昨天在用 PHP 在做一个数据采集项目的时候遇到了一个特殊的问题,就是中文被特殊的字符转化,用PHP采集过来还是保持原来的字符,但在浏览器会被编译成正常的中文字符显示在页面上,但你打开源代码查看时还是会保持原来的字符。
‘Ubuntu | 全球领先的用于个人电脑、平板及手机的操作系统’
上面是这个特殊的原形,经过网络的查找,说这一串字符是 HTML、XML 等 SGML 类语言的转义序列(escape sequence)。它们不是「编码」。
- &#dddd;
- &#xhhhh;
- &#name;
以 HTML 为例,这三种转义序列都称作 character reference:
- 前两种是 numeric character reference(NCR),数字取值为目标字符的 Unicode code point;以「&#」开头的后接十进制数字,以「&#x」开头的后接十六进制数字。
- 后一种是 character entity reference,后接预先定义的 entity 名称,而 entity 声明了自身指代的字符。
从 HTML 4 开始,NCR 以 Unicode 为准,与文档编码无关。
通过以上资料的提示,我开始查找 PHP 有关 Unicode 方面的信息,所以昨天就找到这篇我收藏的《PHP实现Unicode和Utf-8编码的互相转换》可无奈的是依然无法解决我想直接在 PHP 中就将这字符直接转换成将中文输出的问题,于是今天上午我又换了一种思路去开始查找,最后终于让我找到了解决方法。
原来 PHP 自带就有两个函数来解决这个问题,这两个函数分别是 html_entity_decode 和 mb_convert_encoding。
至于这两个函数的用法,大家可以看 PHP 官方的手册就明白,这个不多说了,下面是两个函数解决这个问题的写法。
- $string = 'Ubuntu | 全球领先的用于个人电脑、平板及手机的操作系统';
- $str1 = html_entity_decode($string);
- $str2 = mb_convert_encoding($string, 'utf-8', 'HTML-ENTITIES');
转载请注明:PKCMS博客 » PHP 中转换 SGML 类语言为真实中文字符
- PHP 中转换 SGML 类语言为真实中文字符
- PHP中转换数据类型
- php 中iconv中转换
- 在iOS中转换URL字符
- java中转换为字符串的方法
- js中转换字符串为JSON格式
- 【实用代码】C#中转换全半角字符的函数
- linux使用iconv在不同字符编码中转换
- sprintf在51单片机中转换字符出错问题解决
- Java中转换为Json对象的例子
- T-SQL 中转换日期为各种格式
- 关于MD5加密中转换byte为十六进制的问题
- js中转换布局格式为绝对定位
- MySql中转换字段的null值为0
- PHP中转换编码问题 GBK/UTF-8等
- 在LoadRunner中转换字符串大小写的C语言函数
- c语言中uchar,在JAVA中转换
- php取含有中文的字符串的真实长度(一个中文算两个字符)
- 【Android基础知识】Drawable Animation和View Animation
- POI创建Excel
- 算法:递推法
- CSS问题集锦
- IE盒子模型和标准W3C盒子模型
- PHP 中转换 SGML 类语言为真实中文字符
- 【uboot201607移植到FL2440】添加自己的板子并实现串口的打印
- Java编程思想重点笔记(Java开发必看)
- LinearLayout中组件右对齐
- 数据库进阶之数据库事务(ACID)
- 通过代码关闭程序
- TCP发送接口(如send(),write()等)的返回值与成功发送到接收端的数据量无直接关系 .
- PLSQL性能优化方法
- php综合面试题