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 相关文章推荐
mysql limit查询优化分析
Nov 12 PHP
php Static关键字实用方法
Jun 04 PHP
php返回json数据函数实例
Oct 09 PHP
一个经典的PHP验证码类分享
Nov 18 PHP
php实现微信公众平台账号自定义菜单类
Dec 02 PHP
用PHP代码在网页上生成图片
Jul 01 PHP
php 数组随机取值的简单实例
May 23 PHP
深入分析PHP优化及注意事项
Jul 04 PHP
你不知道的文件上传漏洞php代码分析
Sep 29 PHP
PHP封装的PDO数据库操作类实例
Jun 21 PHP
php基于session锁防止阻塞请求的方法分析
Aug 07 PHP
PHP学习记录之常用的魔术常量详解
Dec 12 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恢复数组的key为数字序列的方法
2015/04/28 PHP
PHP API接口必备之输出json格式数据示例代码
2017/06/27 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
2020/04/04 PHP
Laravel统一错误处理为JSON的方法介绍
2020/10/18 PHP
基础的prototype.js常用函数及其用法
2007/03/10 Javascript
ext for eclipse插件安装方法
2008/04/27 Javascript
js 获取服务器控件值的代码
2010/03/05 Javascript
各浏览器对click方法的支持差异小结
2011/07/31 Javascript
javascript之bind使用介绍
2011/10/09 Javascript
Three.js源码阅读笔记(物体是如何组织的)
2012/12/27 Javascript
JQuery入门——事件切换之hover()方法应用介绍
2013/02/05 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
2015/04/07 Javascript
JavaScript实现数组随机排序的方法
2015/06/26 Javascript
js实现接收表单的值并将值拼在表单action后面的方法
2015/11/23 Javascript
JS触发服务器控件的单击事件(详解)
2016/08/06 Javascript
详解RequireJs官方使用教程
2017/10/31 Javascript
详解NODEJS基于FFMPEG视频推流测试
2017/11/17 NodeJs
vue配置多页面的实现方法
2018/05/22 Javascript
深入了解javascript 数组的sort方法
2018/06/01 Javascript
jQuery三组基本动画与自定义动画操作实例总结
2020/05/09 jQuery
Python的Asyncore异步Socket模块及实现端口转发的例子
2016/06/14 Python
解决python中无法自动补全代码的问题
2018/12/04 Python
在Pycharm terminal中字体大小设置的方法
2019/01/16 Python
Python将列表数据写入文件(txt, csv,excel)
2019/04/03 Python
如何运行带参数的python脚本
2019/11/15 Python
python标准库os库的函数介绍
2020/02/12 Python
校园自助餐厅的创业计划书
2013/12/26 职场文书
玩具公司的创业计划书
2013/12/31 职场文书
酒店中秋节活动方案
2014/01/31 职场文书
关于期中考试的反思
2014/02/02 职场文书
高中竞选班长演讲稿
2014/04/24 职场文书
党务公开方案
2014/05/06 职场文书
教师拔河比赛广播稿
2014/10/14 职场文书
Python实现Telnet自动连接检测密码的示例
2021/04/16 Python
MySQL对数据表已有表进行分区表的实现
2021/11/01 MySQL
Win11 BitLocker 驱动器加密
2022/04/19 数码科技