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 相关文章推荐
php URL编码解码函数代码
Mar 10 PHP
php json_encode奇怪问题说明
Sep 27 PHP
PHP CLI模式下的多进程应用分析
Jun 03 PHP
php float不四舍五入截取浮点型字符串方法总结
Oct 28 PHP
php实现按文件名搜索文件的远程文件查找器
May 10 PHP
ThinkPHP中ajax使用实例教程
Aug 22 PHP
php中getservbyport与getservbyname函数用法实例
Nov 18 PHP
PHP解压tar.gz格式文件的方法
Feb 14 PHP
Zend Framework教程之Autoloading用法详解
Mar 08 PHP
PHP数组函数知识汇总
May 12 PHP
深入了解PHP中的Array数组和foreach
Nov 06 PHP
php实现PDO中捕获SQL语句错误的方法
Feb 16 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安装攻略:常见问题解答(三)
2006/10/09 PHP
PHP 远程关机实现代码
2009/11/10 PHP
PHP操作MongoDB时的整数问题及对策说明
2011/05/02 PHP
PHP 图片水印类代码
2012/08/27 PHP
PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
2017/07/18 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
PHP中isset、empty的用法与区别示例详解
2020/11/05 PHP
jQuery 创建Dom元素
2010/05/07 Javascript
JS替换文本域内的回车示例
2014/02/18 Javascript
javascript实现类似超链接的效果
2014/12/26 Javascript
JavaScript常用小技巧小结
2014/12/29 Javascript
javascript实现省市区三级联动下拉框菜单
2015/11/17 Javascript
Javascript类型系统之String字符串类型详解
2016/06/21 Javascript
基于angularJS的表单验证指令介绍
2016/10/21 Javascript
JS实现探测网站链接的方法【测试可用】
2016/11/08 Javascript
基于js实现的限制文本框只可以输入数字
2016/12/05 Javascript
浅谈对Angular中的生命周期钩子的理解
2017/07/31 Javascript
vue: WebStorm设置快速编译运行的方法
2018/10/18 Javascript
Vue数字输入框组件的使用方法
2019/10/19 Javascript
vue中是怎样监听数组变化的
2020/10/24 Javascript
[01:05]主宰至宝剑心之遗
2017/03/16 DOTA
[06:57]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD 选手采访
2021/03/11 DOTA
使用wxpython实现的一个简单图片浏览器实例
2014/07/10 Python
python排序方法实例分析
2015/04/30 Python
Django视图和URL配置详解
2018/01/31 Python
Python函数定义及传参方式详解(4种)
2019/03/18 Python
Python 获取异常(Exception)信息的几种方法
2020/12/29 Python
TUMI澳大利亚网站:美国旅行箱包品牌
2017/03/27 全球购物
高级方案规划工程师岗位职责
2013/11/29 职场文书
团购业务员岗位职责
2014/03/15 职场文书
领导干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
十岁生日答谢词
2015/01/05 职场文书
教师党员个人自我评价
2015/03/04 职场文书
探究Mysql模糊查询是否区分大小写
2021/06/11 MySQL
Java设计模式中的命令模式
2022/04/28 Java/Android
GO中sync包自由控制并发示例详解
2022/08/05 Golang