PHP学习笔记之字符串编码的转换和判断


Posted in PHP onMay 22, 2014
iconv('GBK', 'UTF-8//IGNORE', '三水点靠木'); // 将字符串由 GBK 编码转换为 UTF-8 编码

但 iconv 只能解决编码预先知道的情况,如果字符串编码未知,则需要先探测其编码,这时可能会用到 mb_string 扩展库:

mb_detect_encoding('三水点靠木');

可是 mb_detect_encoding 存在一个硬伤,经常出现判断不准确的情况。或许这样就可以解决:

// 使用 iconv 转换并判断是否等值,效率不高
function is_utf8 ($str) {
    if ($str === iconv('UTF-8', 'UTF-8//IGNORE', $str)) {
        return 'UTF-8';
    }
}
// 多种编码的情况
function detect_encoding ($str) {
    foreach (array('GBK', 'UTF-8') as $v) {
        if ($str === iconv($v, $v . '//IGNORE', $str)) {
            return $v;
        }
    }
}

通过以上方式得到字符串编码信息后,就可以利用 iconv 或 mb_convert_encoding 来转换编码了。

PHP 相关文章推荐
windows下PHP APACHE MYSQ完整配置
Jan 02 PHP
php SQL之where语句生成器
Mar 24 PHP
php去除重复字的实现代码
Sep 16 PHP
从零开始学YII2框架(二)通过 Composer 安装扩展插件
Aug 20 PHP
jQuery+PHP实现的掷色子抽奖游戏实例
Jan 04 PHP
php获得网站访问统计信息类Compete API用法实例
Apr 02 PHP
超详细的php用户注册页面填写信息完整实例(附源码)
Nov 17 PHP
实例简介PHP的一些高级面向对象编程的特性
Nov 27 PHP
PHP中addcslashes与stripcslashes函数用法分析
Jan 07 PHP
100行PHP代码实现socks5代理服务器
Apr 28 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
May 11 PHP
php类自动装载、链式操作、魔术方法实现代码
Jul 23 PHP
PHP+memcache实现消息队列案例分享
May 21 #PHP
php+highchats生成动态统计图
May 21 #PHP
PhpDocumentor 2安装以及生成API文档的方法
May 21 #PHP
Smarty模板学习笔记之Smarty简介
May 20 #PHP
php实例分享之mysql数据备份
May 19 #PHP
dedecms函数分享之获取某一栏目所有子栏目
May 19 #PHP
ECMall支持SSL连接邮件服务器的配置方法详解
May 19 #PHP
You might like
那些年一起学习的PHP(一)
2012/03/21 PHP
探讨:如何使用PhpDocumentor生成文档
2013/06/25 PHP
PHP中error_reporting函数用法详细介绍
2017/06/11 PHP
PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类示例
2019/06/17 PHP
TNC vs BOOM BO3 第三场2.13
2021/03/10 DOTA
js活用事件触发对象动作
2008/08/10 Javascript
jquery中:input和input的区别分析
2011/07/13 Javascript
javascript 二进制运算技巧解析
2012/11/27 Javascript
浅析javascript中的DOM
2015/03/01 Javascript
jquery插件qrcode在线生成二维码
2015/04/26 Javascript
javascript实现table选中的行以指定颜色高亮显示的方法
2015/05/13 Javascript
json格式数据的添加,删除及排序方法
2016/01/21 Javascript
JavaScript实现公历转农历功能示例
2017/02/13 Javascript
在bootstrap中实现轮播图实例代码
2017/06/11 Javascript
浅谈使用React.setState需要注意的三点
2017/12/18 Javascript
微信小程序实现YDUI的ScrollTab组件
2018/02/02 Javascript
Vue实现简易翻页效果源码分享
2018/11/08 Javascript
Python中字典(dict)和列表(list)的排序方法实例
2014/06/16 Python
Python学习小技巧之列表项的拼接
2017/05/20 Python
windows下Python实现将pdf文件转化为png格式图片的方法
2017/07/21 Python
python得到一个excel的全部sheet标签值方法
2018/12/10 Python
numpy.linspace函数具体使用详解
2019/05/27 Python
Python urlencode和unquote函数使用实例解析
2020/03/31 Python
PyCharm最新激活码(2020/10/27全网最新)
2020/10/27 Python
python3代码中实现加法重载的实例
2020/12/03 Python
处理HTML5新标签的浏览器兼容版问题
2017/03/13 HTML / CSS
HTML5中indexedDB 数据库的使用实例
2017/05/11 HTML / CSS
理肤泉加拿大官网:La Roche-Posay加拿大
2018/07/06 全球购物
ToysRus日本官网:玩具反斗城
2018/09/08 全球购物
教育科研先进个人材料
2014/01/26 职场文书
文科毕业生自荐书范文
2014/04/17 职场文书
优秀本科毕业生自荐信
2014/07/04 职场文书
铣工实训报告
2014/11/05 职场文书
2015年度优秀员工推荐信
2015/03/23 职场文书
终止合同协议书范本
2016/03/22 职场文书
新员工入职感言范文!
2019/07/04 职场文书