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 相关文章推荐
一个程序下载的管理程序(一)
Oct 09 PHP
PHP字符转义相关函数小结(php下的转义字符串)
Apr 12 PHP
php实现mysql同步的实现方法
Oct 21 PHP
解析link_mysql的php版
Jun 30 PHP
PHP获取Exif缩略图的方法
Jul 13 PHP
PHP图形操作之Jpgraph学习笔记
Dec 25 PHP
Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
Jul 25 PHP
php实现水印文字和缩略图的方法示例
Dec 29 PHP
PHP基于接口技术实现简单的多态应用完整实例
Apr 26 PHP
详解PHP使用Redis存储session时的一个Warning定位
Jul 05 PHP
PHP PDOStatement::bindValue讲解
Jan 30 PHP
Linux系统下安装PHP7.3版本
Jun 26 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
PHP5 的对象赋值机制介绍
2011/08/02 PHP
探讨php中防止SQL注入最好的方法是什么
2013/06/10 PHP
摘自织梦CMS中的图片处理类
2015/08/08 PHP
PHP xpath()函数讲解
2019/02/11 PHP
laravel高级的Join语法详解以及使用Join多个条件
2019/10/16 PHP
让人印象深刻的10个jQuery手风琴效果应用
2012/05/08 Javascript
网页中返回顶部代码(多种方法)另附注释说明
2013/04/24 Javascript
深入理解JSON数据源格式
2014/01/10 Javascript
jquery浏览器滚动加载技术实现方案
2014/06/03 Javascript
jquery操作ID带有变量的节点实例
2016/12/07 Javascript
js实现倒计时关键代码
2017/05/05 Javascript
VUE长按事件需求详解
2017/10/18 Javascript
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
vue项目配置使用flow类型检查的步骤
2020/03/18 Javascript
[27:39]Ti4 循环赛第二日 LGD vs Fnatic
2014/07/11 DOTA
Python深入学习之上下文管理器
2014/08/31 Python
Python下线程之间的共享和释放示例
2015/05/04 Python
python调用百度REST API实现语音识别
2018/08/30 Python
python处理DICOM并计算三维模型体积
2019/02/26 Python
详解Python函数式编程—高阶函数
2019/03/29 Python
基于Python获取docx/doc文件内容代码解析
2020/02/17 Python
pycharm全局搜索的具体步骤
2020/07/28 Python
如何从csv文件构建Tensorflow的数据集
2020/09/21 Python
澳大利亚便宜的家庭购物网站:CrazySales
2018/02/06 全球购物
英国曼彻斯特宠物用品品牌:Bunty Pet Products
2019/07/27 全球购物
澳大利亚美容产品及化妆品在线:Activeskin
2020/06/03 全球购物
下述程序的作用是计算机数组中的最大元素值及其下标
2012/11/26 面试题
市场营销职业生涯规划书范文
2014/01/12 职场文书
自动一体化专业求职信
2014/03/15 职场文书
降消项目实施方案
2014/03/30 职场文书
股权收购意向书
2014/04/01 职场文书
承租经营合作者协议书
2014/10/01 职场文书
2015年销售内勤工作总结
2015/04/27 职场文书
MySQL锁机制
2021/04/05 MySQL
mysql分组后合并显示一个字段的多条数据方式
2022/01/22 MySQL
SpringCloud Feign请求头删除修改的操作代码
2022/03/20 Java/Android