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 相关文章推荐
第三节--定义一个类
Nov 16 PHP
dede全站URL静态化改造[070414更正]
Apr 17 PHP
php 空格,换行,跳格使用说明
Dec 18 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
May 12 PHP
PHP Session机制简介及用法
Aug 19 PHP
实用的PHP带公钥加密类分享(每次加密结果都不一样哦)
Aug 20 PHP
php结合ACCESS的跨库查询功能
Jun 12 PHP
详解Yii实现分页的两种方法
Jan 14 PHP
PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法
Sep 13 PHP
Laravel 5.4.36中session没有保存成功问题的解决
Feb 19 PHP
CI框架网页缓存简单用法分析
Dec 26 PHP
laravel框架数据库配置及操作数据库示例
Oct 10 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的gd2库
2017/02/09 PHP
Thinkphp极验滑动验证码实现步骤解析
2020/11/24 PHP
HTML中事件触发列表与解说
2007/07/09 Javascript
document.open() 与 document.write()的区别
2007/08/13 Javascript
js表数据排序 sort table data
2009/02/18 Javascript
基于jquery完美拖拽,可返回拖动轨迹
2012/03/29 Javascript
JavaScript中this的使用详解
2013/11/08 Javascript
JavaScript 数组中最大最小值
2016/06/05 Javascript
整理一下常见的IE错误
2016/11/18 Javascript
vue页面切换到滚动页面显示顶部的实例
2018/03/13 Javascript
jquery 通过ajax请求获取后台数据显示在表格上的方法
2018/08/08 jQuery
详解Vue中的scoped及穿透方法
2019/04/18 Javascript
微信小程序间使用navigator跳转传值问题实例分析
2020/03/27 Javascript
vuex分模块后,实现获取state的值
2020/07/26 Javascript
vuex Module将 store 分割成模块的操作
2020/12/07 Vue.js
在Python程序中操作文件之flush()方法的使用教程
2015/05/24 Python
python基于phantomjs实现导入图片
2016/05/13 Python
Python实现的计算器功能示例
2018/04/26 Python
对pandas通过索引提取dataframe的行方法详解
2019/02/01 Python
python对矩阵进行转置的2种处理方法
2019/07/17 Python
Django中间件拦截未登录url实例详解
2019/09/03 Python
python实现简单图书管理系统
2019/11/22 Python
Python ADF 单位根检验 如何查看结果的实现
2020/06/03 Python
纯CSS3实现鼠标悬停提示气泡效果
2014/02/28 HTML / CSS
使用phonegap检测网络状态的方法
2017/03/30 HTML / CSS
全球最大的游戏市场:G2A
2018/07/05 全球购物
数控技术学生的自我评价
2014/02/15 职场文书
优秀学生获奖感言
2014/02/15 职场文书
开工仪式策划方案
2014/05/23 职场文书
感恩教师节演讲稿
2014/09/03 职场文书
2014党员四风对照检查材料思想汇报
2014/09/17 职场文书
通知的格式范文
2015/04/27 职场文书
2015年高中班主任工作总结
2015/04/30 职场文书
2015年大班保育员工作总结
2015/05/18 职场文书
撤诉书怎么写
2015/05/19 职场文书
SpringDataJPA在Entity中常用的注解介绍
2021/12/06 Java/Android