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发送邮件类代码附详细说明
Jul 10 PHP
PHP 日,周,月点击排行统计
Jan 11 PHP
配置php网页显示各种语法错误
Sep 23 PHP
php操作xml
Oct 27 PHP
PHP基于CURL进行POST数据上传实例
Nov 10 PHP
开启PHP Static 关键字之旅模式
Nov 13 PHP
CI框架中数据库操作函数$this->db->where()相关用法总结
May 17 PHP
PHP在innodb引擎下快速代建全文搜索功能简明教程【基于xunsearch】
Oct 14 PHP
PHP文件上传处理案例分析
Oct 15 PHP
php实现基于pdo的事务处理方法示例
Jul 21 PHP
php实现二叉树中和为某一值的路径方法
Oct 14 PHP
详解php命令注入攻击
Apr 06 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学习笔记 面向对象的构造与析构方法
2011/06/13 PHP
PHP5中GD库生成图形验证码(有汉字)
2013/07/28 PHP
js弹窗代码 可以指定弹出间隔
2010/07/03 Javascript
JS重要知识点小结
2011/11/06 Javascript
js取消单选按钮选中并判断对象是否为空
2013/11/14 Javascript
jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
2015/12/03 Javascript
jQuery EasyUI学习教程之datagrid点击列表头排序
2016/07/09 Javascript
Bootstrap被封装的弹层
2016/07/20 Javascript
javaScript封装的各种写法
2017/08/14 Javascript
JavaScript+CSS相册特效实例代码
2017/09/07 Javascript
VueJs 搭建Axios接口请求工具
2017/11/20 Javascript
解决vue页面刷新或者后退参数丢失的问题
2018/03/13 Javascript
javascript实现文件拖拽事件
2018/03/29 Javascript
使用Vue.js 和Chart.js制作绚丽多彩的图表
2019/06/15 Javascript
JavaScript简单编程实例学习
2020/02/14 Javascript
[01:30]DOTA2上海特锦赛现场采访 Loda倾情献唱
2016/03/25 DOTA
Python实现读取字符串按列分配后按行输出示例
2018/04/17 Python
删除python pandas.DataFrame 的多重index实例
2018/06/08 Python
python 筛选数据集中列中value长度大于20的数据集方法
2018/06/14 Python
python 以16进制打印输出的方法
2018/07/09 Python
Python CSV文件模块的使用案例分析
2019/12/21 Python
Python实现投影法分割图像示例(二)
2020/01/17 Python
python函数中将变量名转换成字符串实例
2020/05/11 Python
详解pyinstaller生成exe的闪退问题解决方案
2020/06/19 Python
美国最大的袜子制造商和零售商:Renfro Socks
2017/09/03 全球购物
JD Sports意大利:英国篮球和运动时尚的领导者
2017/10/29 全球购物
Omio葡萄牙:全欧洲低价大巴、火车和航班搜索和比价
2019/02/09 全球购物
英国标准协会商店:BSI Shop
2019/02/25 全球购物
英国索普公园票务和酒店套餐:Thorpe Breaks
2019/09/14 全球购物
数控加工专业毕业生自荐信
2013/09/27 职场文书
车间副主任岗位职责
2013/12/24 职场文书
20岁生日感言
2014/01/13 职场文书
小学音乐教学反思
2014/02/05 职场文书
《北京的春节》教学反思
2014/04/07 职场文书
节能宣传周活动总结
2014/05/08 职场文书
python和anaconda的区别
2022/05/06 Python