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 相关文章推荐
第十节 抽象方法和抽象类 [10]
Oct 09 PHP
通过对php一些服务器端特性的配置加强php的安全
Oct 09 PHP
深入Memcache的Session数据的多服务器共享详解
Jun 13 PHP
PHP读书笔记整理_结构语句详解
Jul 01 PHP
PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】
Jan 13 PHP
PHP获取路径和目录的方法总结【必看篇】
Mar 04 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 PHP
Laravel中encrypt和decrypt的实现方法
Sep 24 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 PHP
PHP使用Redis长连接的方法详解
Feb 12 PHP
PHP测试框架PHPUnit组织测试操作示例
May 28 PHP
在PHP中实现使用Guzzle执行POST和GET请求
Oct 15 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
后宫无数却洁身自好的男主,唐三只爱小舞
2020/03/02 国漫
PHP以指定字段为索引返回数据库所取的数据数组
2013/06/30 PHP
php验证是否是md5编码的简单代码
2014/04/01 PHP
php 输入输出流详解及示例代码
2016/08/25 PHP
php使用preg_match()函数验证ip地址的方法
2017/01/07 PHP
详解php中的implements 使用
2017/06/13 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
2019/10/21 PHP
JavaScript 字符编码规则
2009/05/04 Javascript
nodejs npm package.json中文文档
2014/09/04 NodeJs
JavaScript字符串对象split方法入门实例(用于把字符串分割成数组)
2014/10/16 Javascript
完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码
2014/12/17 Javascript
angularjs基础教程
2014/12/25 Javascript
JS常用字符串方法(推荐)
2021/01/15 Javascript
js通过指定下标或指定元素进行删除数组的实例
2017/01/12 Javascript
Angular.js中angular-ui-router的简单实践
2017/07/18 Javascript
vue获取当前激活路由的方法
2018/03/17 Javascript
vue-cli3.0配置及使用注意事项详解
2018/09/05 Javascript
微信小程序制作表格的方法
2019/02/14 Javascript
jQuery ajax仿Google自动提示SearchSuggess功能示例
2019/03/28 jQuery
javascript实现抢购倒计时程序
2019/08/26 Javascript
Python命名空间详解
2014/08/18 Python
python计算对角线有理函数插值的方法
2015/05/07 Python
python 捕获 shell/bash 脚本的输出结果实例
2017/01/04 Python
Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法
2017/01/12 Python
Python使用matplotlib绘制三维图形示例
2018/08/25 Python
Python 分享10个PyCharm技巧
2019/07/13 Python
Python scrapy增量爬取实例及实现过程解析
2019/12/24 Python
python连接PostgreSQL过程解析
2020/02/09 Python
Python自动化测试笔试面试题精选
2020/03/12 Python
如何用Matlab和Python读取Netcdf文件
2021/02/19 Python
美国在线工具商店:Acme Tools
2018/06/26 全球购物
网站客服岗位职责
2014/04/05 职场文书
2014年秋季新学期寄语
2014/08/02 职场文书
2015年党务公开工作总结
2015/05/19 职场文书
遗失证明范文
2015/06/19 职场文书
vue+spring boot实现校验码功能
2021/05/27 Vue.js