php 判断字符串编码是utf-8 或gb2312实例


Posted in PHP onNovember 01, 2016

php 判断字符串编码是utf-8 或gb2312

第一种方法:

function is_gb2312($str)
{
    for($i=0; $i<strlen($str); $i++) {
        $v = ord( $str[$i] );
        if( $v > 127) {
            if( ($v >= 228) && ($v <= 233) )
            {
                if( ($i+2) >= (strlen($str) - 1)) return true; // not enough characters
                $v1 = ord( $str[$i+1] );
                $v2 = ord( $str[$i+2] );
                if( ($v1 >= 128) && ($v1 <=191) && ($v2 >=128) && ($v2 <= 191) ) // utf编码
                    return false;
                else
                    return true;
            }
        }
    }
    return true;
}

第二种方法:

/**
 * 判断字符串是utf-8 还是gb2312
 * @param unknown $str
 * @param string $default
 * @return string
 */
public static function utf8_gb2312($str, $default = 'gb2312')
{
 $str = preg_replace("/[\x01-\x7F]+/", "", $str);
 if (empty($str)) return $default;

 $preg = array(
 "gb2312" => "/^([\xA1-\xF7][\xA0-\xFE])+$/", //正则判断是否是gb2312
 "utf-8" => "/^[\x{4E00}-\x{9FA5}]+$/u",   //正则判断是否是汉字(utf8编码的条件了),这个范围实际上已经包含了繁体中文字了
 );

 if ($default == 'gb2312') {
 $option = 'utf-8';
 } else {
 $option = 'gb2312';
 }

 if (!preg_match($preg[$default], $str)) {
 return $option;
 }
 $str = @iconv($default, $option, $str);

 //不能转成 $option, 说明原来的不是 $default
 if (empty($str)) {
 return $option;
 }
 return $default;
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

PHP 相关文章推荐
配置PHP使之能同时支持GIF和JPEG
Oct 09 PHP
php下实现折线图效果的代码
Apr 28 PHP
PHP序列号生成函数和字符串替换函数代码
Jun 07 PHP
php中禁止单个IP与ip段访问的代码小结
Jul 04 PHP
php导出excel格式数据问题
Mar 11 PHP
php socket客户端及服务器端应用实例
Jul 04 PHP
php实现用于删除整个目录的递归函数
Mar 16 PHP
PHP也能干大事之PHP中的编码解码详解
Apr 20 PHP
PHP调试的强悍利器之PHPDBG
Feb 22 PHP
PHP基于Closure类创建匿名函数的方法详解
Aug 17 PHP
Yii2压缩PHP中模板代码的输出问题
Aug 28 PHP
浅谈Laravel中的三种中间件的作用
Oct 13 PHP
PHP用户验证和标签推荐的简单使用
Oct 31 #PHP
PHP实现小偷程序实例
Oct 31 #PHP
利用php实现一周之内自动登录存储机制(cookie、session、localStorage)
Oct 31 #PHP
利用php做服务器和web前端的界面进行交互
Oct 31 #PHP
php将服务端的文件读出来显示在web页面实例
Oct 31 #PHP
PDO的安全处理与事物处理方法
Oct 31 #PHP
PHP仿微信发红包领红包效果
Oct 30 #PHP
You might like
php牛逼的面试题分享
2013/01/18 PHP
md5 16位二进制与32位字符串相互转换示例
2013/12/30 PHP
thinkphp中session和cookie无效的解决方法
2014/12/19 PHP
yii2 数据库读写分离配置示例
2017/02/10 PHP
关于javascript document.createDocumentFragment()
2009/04/04 Javascript
JQuery实现倒计时按钮的实现代码
2012/03/23 Javascript
利用javascript解决图片缩放及其优化的代码
2012/05/23 Javascript
nodejs win7下安装方法
2012/05/24 NodeJs
jquery实现简单手风琴菜单效果实例
2015/06/13 Javascript
浅谈js 闭包引起的内存泄露问题
2015/06/22 Javascript
jQuery Validate初步体验(一)
2015/12/12 Javascript
js点击按钮实现带遮罩层的弹出视频效果
2015/12/19 Javascript
浅谈js的html元素的父节点,子节点
2016/08/06 Javascript
jQuery模拟实现的select点击选择效果【附demo源码下载】
2016/11/09 Javascript
Javascript 判断两个IP是否在同一网段实例代码
2016/11/28 Javascript
浅析javascript中的Event事件
2016/12/09 Javascript
用JavaScript实现让浏览器停止载入页面的方法
2017/01/19 Javascript
JS+HTML5实现上传图片预览效果完整实例【测试可用】
2017/04/20 Javascript
Three.js实现绘制字体模型示例代码
2017/09/26 Javascript
深入浅析Vue中的slots/scoped slots
2018/04/03 Javascript
微信小程序自定义轮播图
2018/11/04 Javascript
详解微信小程序获取当前时间及日期的方法
2019/04/28 Javascript
layui对工具条进行选择性的显示方法
2019/09/19 Javascript
解决vue 子组件修改父组件传来的props值报错问题
2019/11/09 Javascript
JavaScript实现雪花飘落效果
2020/12/27 Javascript
python文件和目录操作函数小结
2014/07/11 Python
python实现按任意键继续执行程序
2016/12/30 Python
python实现飞行棋游戏
2020/02/05 Python
pandas读取csv文件提示不存在的解决方法及原因分析
2020/04/21 Python
利用CSS3的3D效果制作正方体
2020/03/10 HTML / CSS
自考自我鉴定范文
2013/10/30 职场文书
大学生职业生涯规划范文
2014/01/22 职场文书
《称象》教学反思
2014/04/25 职场文书
借钱欠条怎么写
2015/07/03 职场文书
小学英语教学随笔
2015/08/14 职场文书
nginx容器方式反向代理实战
2022/04/18 Servers