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 相关文章推荐
关于PHP5 Session生命周期介绍
Mar 02 PHP
php下连接mssql2005的代码
Jan 17 PHP
有关php运算符的知识大全
Nov 03 PHP
php中将一段数据存到一个txt文件中并显示其内容
Aug 15 PHP
html静态页面调用php文件的方法
Nov 13 PHP
php简单实现查询数据库返回json数据
Apr 16 PHP
php异常处理方法实例汇总
Jun 24 PHP
详解yii2实现分库分表的方案与思路
Feb 03 PHP
php实现文件与16进制相互转换的方法示例
Feb 16 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
Dec 01 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
Jan 02 PHP
PHP sdk文档处理常用代码示例解析
Dec 09 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检查字符串中是否包含7位GSM字符的方法
2015/03/17 PHP
Yii2超好用的日期和时间组件(值得收藏)
2016/05/05 PHP
浅谈PHP的exec()函数无返回值排查方法(必看)
2017/03/31 PHP
php异常处理捕获错误整理
2019/09/23 PHP
JavaScript 全面解析各种浏览器网页中的JS 执行顺序
2009/02/17 Javascript
js 父窗口控制子窗口的行为-打开,关闭,重定位,回复
2010/04/20 Javascript
Javascript 静态页面实现随机显示广告的办法
2010/11/17 Javascript
JS小功能(setInterval实现图片效果显示时间)实例代码
2013/11/28 Javascript
使用js dom和jquery分别实现简单增删改
2014/09/11 Javascript
js实现按Ctrl+Enter发送效果
2014/09/18 Javascript
理解javascript定时器中的setTimeout与setInterval
2016/02/23 Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
2017/10/30 Javascript
vue-router2.0 组件之间传参及获取动态参数的方法
2017/11/10 Javascript
微信小程序利用canvas 绘制幸运大转盘功能
2018/07/06 Javascript
在webstorm开发微信小程序之使用阿里自定义字体图标的方法
2018/11/15 Javascript
一文了解vue-router之hash模式和history模式
2019/05/31 Javascript
JavaScript内置对象math,global功能与用法实例分析
2019/06/10 Javascript
JS字符串与二进制的相互转化实例代码详解
2019/06/28 Javascript
微信小程序使用前置摄像头拍照
2020/10/22 Javascript
pyv8学习python和javascript变量进行交互
2013/12/04 Python
使用python将mdb数据库文件导入postgresql数据库示例
2014/02/17 Python
python实现自动登录人人网并采集信息的方法
2015/06/28 Python
Python抓取淘宝下拉框关键词的方法
2015/07/08 Python
python递归查询菜单并转换成json实例
2017/03/27 Python
flask应用部署到服务器的方法
2019/07/12 Python
python3调用windows dos命令的例子
2019/08/14 Python
Python递归函数特点及原理解析
2020/03/04 Python
pytorch随机采样操作SubsetRandomSampler()
2020/07/07 Python
python 常见的反爬虫策略
2020/09/27 Python
python实现企业微信定时发送文本消息的实例代码
2020/11/25 Python
Python爬虫之Selenium警告框(弹窗)处理
2020/12/04 Python
HTML利用九宫格原理进行网页布局
2020/03/13 HTML / CSS
老总助理工作岗位职责
2014/02/06 职场文书
出国留学计划书
2014/04/27 职场文书
辞职信怎么写?你都知道吗?
2019/06/24 职场文书
读《工匠精神》有感:热爱工作,精益求精
2019/12/28 职场文书