php自动获取字符串编码函数mb_detect_encoding


Posted in PHP onMay 31, 2011

当在php中使用mb_detect_encoding函数进行编码识别时,很多人都碰到过识别编码有误的问题,例如对与GB2312和UTF- 8,或者UTF-8和GBK(这里主要是对于cp936的判断),网上说是由于字符短是,mb_detect_encoding会出现误判。
例如:

$encode = mb_detect_encoding($keytitle, array("ASCII",'UTF-8′,"GB2312′,"GBK",'BIG5′)); 
if ($encode == “UTF-8″){ 
$keytitle = iconv("UTF-8″,"GBK",$keytitle); 
}

这段代码的作用是检测字符串的编码是否UTF-8,是的话就转换为GBK。
可是当 $keytitle = “%D0%BE%C6%AC”;时。检测结果却是UTF-8.这个bug其实不算是bug,写程序时也不应当过于依赖mb_detect_encoding,当字符串较短时,检测结果产生偏差的可能性很大。
怎么解决呢,我的办法是:
$encode = mb_detect_encoding($keytitle, array('ASCII','GB2312′,'GBK','UTF-8');

三个参数分别是:被检测的输入变量、编码方式的检测顺序(一旦为真,后面自动忽略)、strict模式
对编码检测的顺序进行调整,将最大可能性放在前面,这样减少被错误转换的机会。
一般要先排gb2312,当有GBK和UTF-8时,需要将常用的排列到前面。
PHP 相关文章推荐
php生成zip压缩文件的方法详解
Jun 09 PHP
PHP中ini_set和ini_get函数的用法小结
Feb 18 PHP
浅谈php优化需要注意的地方
Nov 27 PHP
CentOS下PHP安装Oracle扩展
Feb 15 PHP
使用GD库生成带阴影文字的图片
Mar 27 PHP
在Linux系统下一键重新安装WordPress的脚本示例
Jun 30 PHP
PHP+Ajax验证码验证用户登录
Jul 20 PHP
PHP页面跳转实现延时跳转的方法
Dec 10 PHP
Yii2.0多文件上传实例说明
Jul 24 PHP
Laravel框架使用Seeder实现自动填充数据功能
Jun 13 PHP
centos7上编译安装php7以php-fpm方式连接apache
Nov 08 PHP
laravel框架中视图的基本使用方法分析
Nov 23 PHP
比较时间段一与时间段二是否有交集的php函数
May 31 #PHP
实用PHP会员权限控制实现原理分析
May 29 #PHP
允许phpmyadmin空密码登录的配置方法
May 29 #PHP
php统计文件大小,以GB、MB、KB、B输出
May 29 #PHP
PHP之数组学习
May 29 #PHP
PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
May 29 #PHP
php连接数据库代码应用分析
May 29 #PHP
You might like
php入门学习知识点六 PHP文件的读写操作代码
2011/07/14 PHP
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
2014/06/23 PHP
破除网页鼠标右键被禁用的绝招大全
2006/12/27 Javascript
理解Javascript_01_理解内存分配原理分析
2010/10/11 Javascript
基于jquery的web页面日期格式化插件
2011/11/15 Javascript
日期处理的js库(迷你版)--自建js库总结
2011/11/21 Javascript
jQuery旋转插件—rotate支持(ie/Firefox/SafariOpera/Chrome)
2013/01/16 Javascript
基于jquery实现的文字淡入淡出效果
2013/11/14 Javascript
基于jQuery仿淘宝产品图片放大镜代码分享
2020/06/23 Javascript
JavaScript程序中实现继承特性的方式总结
2016/06/24 Javascript
nodejs搭建本地服务器并访问文件的方法
2017/03/03 NodeJs
Vue.js分页组件实现:diVuePagination的使用详解
2018/01/10 Javascript
JS监听滚动和id自动定位滚动
2018/12/18 Javascript
小程序中的箭头函数的具体使用
2020/06/19 Javascript
微信小程序实现文件预览
2020/10/22 Javascript
在Python中增加和插入元素的示例
2018/11/01 Python
Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】
2019/01/05 Python
python爬虫 批量下载zabbix文档代码实例
2019/08/21 Python
Python单元测试及unittest框架用法实例解析
2020/07/09 Python
Python 用__new__方法实现单例的操作
2020/12/11 Python
蒙蒂塞罗商店:Monticello Shop
2018/11/25 全球购物
材料采购员岗位职责
2013/12/17 职场文书
寒假家长评语大全
2014/04/16 职场文书
学习型党组织建设经验材料
2014/05/26 职场文书
普通话演讲稿
2014/09/03 职场文书
向国旗敬礼活动总结范文2014
2014/09/27 职场文书
公安派出所所长四风问题个人对照检查材料
2014/10/04 职场文书
2015年车间安全管理工作总结
2015/05/13 职场文书
毕业答辩开场白范文
2015/05/27 职场文书
余世维讲座观后感
2015/06/11 职场文书
运动会通讯稿100字
2015/07/20 职场文书
六一儿童节致辞
2015/07/31 职场文书
董事长秘书工作总结
2015/08/14 职场文书
优秀乡村医生事迹材料(2016精选版)
2016/02/29 职场文书
React Native项目框架搭建的一些心得体会
2021/05/28 Javascript
Nginx利用Logrotate实现日志分割
2022/05/20 Servers