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重新实现PHP脚本引擎内置函数
Mar 06 PHP
sqlyog 中文乱码问题的设置方法
Oct 19 PHP
在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)
May 04 PHP
php中{}大括号是什么意思
Dec 01 PHP
php分页代码学习示例分享
Feb 20 PHP
php文件服务实现虚拟挂载其他目录示例
Apr 17 PHP
php 批量查询搜狗sogou代码分享
May 17 PHP
PHP 以POST方式提交XML、获取XML,解析XML详解及实例
Oct 26 PHP
php计算给定日期所在周的开始日期和结束日期示例
Feb 06 PHP
php查询及多条件查询
Feb 26 PHP
php实现生成带二维码图片并强制下载功能
Feb 24 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
Feb 22 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/03/23 PHP
PHP之密码加密的几种方式
2015/07/29 PHP
PHP AjaxForm提交图片上传并显示图片源码
2016/11/29 PHP
PHP实现的分页类定义与用法示例
2017/07/05 PHP
PHP微商城开源代码实例
2019/03/27 PHP
一段实时更新的时间代码
2006/07/07 Javascript
jQuery表单美化插件jqTransform使用详解
2015/04/12 Javascript
在Ubuntu系统上安装Node.JS的教程
2015/10/15 Javascript
vue使用vue-cli快速创建工程
2017/07/28 Javascript
jquery学习笔记之无new构建详解
2017/12/07 jQuery
webpack组织模块打包Library的原理及实现
2018/03/10 Javascript
vue项目首屏加载时间优化实战
2019/04/23 Javascript
Vue.js使用axios动态获取response里的data数据操作
2020/09/08 Javascript
Python使用metaclass实现Singleton模式的方法
2015/05/05 Python
python通过文件头判断文件类型
2015/10/30 Python
python 编程之twisted详解及简单实例
2017/01/28 Python
Python编程使用*解包和itertools.product()求笛卡尔积的方法
2017/12/18 Python
python+PyQT实现系统桌面时钟
2020/06/16 Python
PyQt5 加载图片和文本文件的实例
2019/06/14 Python
Python数据类型之列表和元组的方法实例详解
2019/07/08 Python
Django ORM 自定义 char 类型字段解析
2019/08/09 Python
python 内置函数汇总详解
2019/09/16 Python
python、PyTorch图像读取与numpy转换实例
2020/01/13 Python
opencv python在视屏上截图功能的实现
2020/03/05 Python
解决pycharm中的run和debug失效无法点击运行
2020/06/09 Python
python导入库的具体方法
2020/06/18 Python
你可能不熟练的十个前端HTML5经典面试题
2018/07/03 HTML / CSS
Clearly新西兰:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
将一个数的从第5位开始的7个数取出,其余位置0
2016/05/26 面试题
同事吵架检讨书
2014/02/05 职场文书
教师节促销活动方案
2014/02/14 职场文书
2015欢度元旦标语口号
2014/12/09 职场文书
入党积极分子党小组意见
2015/06/02 职场文书
2019辞职报告范本3篇!
2019/07/23 职场文书
Python 读写 Matlab Mat 格式数据的操作
2021/05/19 Python
国庆节到了,利用JS实现一个生成国庆风头像的小工具 详解实现过程
2021/10/05 Javascript