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调用MySQL的存储过程的实现代码
Aug 12 PHP
PHP下编码转换函数mb_convert_encoding与iconv的使用说明
Dec 16 PHP
php循环语句 for()与foreach()用法区别介绍
Sep 05 PHP
PHP flush()与ob_flush()的区别详解
Jun 03 PHP
提升PHP性能的21种方法介绍
Jun 25 PHP
php 批量替换程序的具体实现代码
Oct 04 PHP
php统计数组元素个数的方法
Jul 02 PHP
PHP curl模拟登录带验证码的网站
Nov 30 PHP
php基于curl实现的股票信息查询类实例
Nov 11 PHP
php实现水印文字和缩略图的方法示例
Dec 29 PHP
PHP重定向与伪静态区别
Feb 19 PHP
PHP simplexml_load_file()函数讲解
Feb 03 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
《斗罗大陆》六翼天使武魂最强,为什么老千家不是上三宗?
2020/03/02 国漫
PHP正则替换函数preg_replace和preg_replace_callback使用总结
2014/09/22 PHP
php在apache环境下实现gzip配置方法
2015/04/02 PHP
浅谈jQuery中的事件
2015/03/23 Javascript
js实现的简单图片浮动效果完整实例
2016/05/10 Javascript
js动态获取子复选项并设计全选及提交的实现方法
2016/06/24 Javascript
基于AngularJS前端云组件最佳实践
2016/10/20 Javascript
详解Vue.js基于$.ajax获取数据并与组件的data绑定
2017/05/26 Javascript
详解ES6中的代理模式——Proxy
2018/01/08 Javascript
微信小程序实现滚动消息通知
2018/02/02 Javascript
微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能图文详解
2019/05/14 Javascript
微信小程序监听用户登录事件的实现方法
2019/11/11 Javascript
原生javascript中this几种常见用法总结
2020/02/24 Javascript
JavaScript中的this基本问题实例小结
2020/03/09 Javascript
JavaScript或jQuery 获取option value值方法解析
2020/05/12 jQuery
通过实例解析chrome如何在mac环境中安装vue-devtools插件
2020/07/10 Javascript
vue内置组件component--通过is属性动态渲染组件操作
2020/07/28 Javascript
[01:12:08]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.24
2019/09/10 DOTA
12步入门Python中的decorator装饰器使用方法
2016/06/20 Python
Python科学画图代码分享
2017/11/29 Python
python实现图片筛选程序
2018/10/24 Python
python批量爬取下载抖音视频
2019/06/17 Python
python实现知乎高颜值图片爬取
2019/08/12 Python
python实现ip地址查询经纬度定位详解
2019/08/30 Python
Python单元测试工具doctest和unittest使用解析
2019/09/02 Python
python实现ssh及sftp功能(实例代码)
2020/03/16 Python
python3访问字典里的值实例方法
2020/11/18 Python
Keras保存模型并载入模型继续训练的实现
2021/02/20 Python
CSS3条纹背景制作的实战攻略
2016/05/31 HTML / CSS
Wiggle美国:英国骑行、跑步、游泳、铁人三项商店
2018/10/27 全球购物
新郎婚宴答谢词
2014/01/19 职场文书
安全生产月演讲稿
2014/05/09 职场文书
学校督导评估方案
2014/06/10 职场文书
党委班子剖析材料
2014/08/21 职场文书
领导班子整改方案
2014/10/25 职场文书
学习党章心得体会2016
2016/01/15 职场文书