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 url地址栏传中文乱码解决方法集合
Jun 25 PHP
PHP判断搜索引擎蜘蛛并自动记忆到文件的代码
Feb 04 PHP
JS中encodeURIComponent函数用php解码的代码
Mar 01 PHP
php数组去重的函数代码
Feb 03 PHP
Laravel框架路由配置总结、设置技巧大全
Sep 03 PHP
PHP图片处理之使用imagecopy函数添加图片水印实例
Nov 19 PHP
php中数据库连接方式pdo和mysqli对比分析
Feb 25 PHP
PHP实现过滤各种HTML标签
May 17 PHP
PHP 中 Orientation 属性判断上传图片是否需要旋转
Oct 16 PHP
100多行PHP代码实现socks5代理服务器[2]
May 05 PHP
一段实用的php验证码函数
May 19 PHP
功能强大的PHP POST提交数据类
Jul 15 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跳出循环的方法以及continue、break、exit的区别介绍
2013/07/01 PHP
php输入流php://input使用示例(php发送图片流到服务器)
2013/12/25 PHP
destoon实现资讯信息前面调用它所属分类的方法
2014/07/15 PHP
php array_walk_recursive 使用自定的函数处理数组中的每一个元素
2016/11/16 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
2017/12/25 PHP
JQuery 图片延迟加载并等比缩放插件
2009/11/09 Javascript
jQuery 获取对象 根据属性、内容匹配, 还有表单元素匹配
2010/05/31 Javascript
js播放wav文件(源码)
2013/04/22 Javascript
parentElement,srcElement的使用小结
2014/01/13 Javascript
node.js中的path.dirname方法使用说明
2014/12/09 Javascript
JavaScript编程中容易出BUG的几点小知识
2015/01/31 Javascript
JS模拟键盘打字效果的方法
2015/08/05 Javascript
简介BootStrap model弹出框的使用
2016/04/27 Javascript
详解JavaScript中|单竖杠运算符的使用方法
2016/05/23 Javascript
Javascript格式化并高亮xml字符串的方法及注意事项
2018/08/13 Javascript
vue中axios实现数据交互与跨域问题
2019/05/12 Javascript
vue App.vue中的公共组件改变值触发其他组件或.vue页面监听
2019/05/31 Javascript
使用PreloadJS加载图片资源的基础方法详解
2020/02/03 Javascript
Angular5整合富文本编辑器TinyMCE的方法(汉化+上传)
2020/05/26 Javascript
python调用Moxa PCOMM Lite通过串口Ymodem协议实现发送文件
2014/08/15 Python
浅析python实现scrapy定时执行爬虫
2018/03/04 Python
Pandas标记删除重复记录的方法
2018/04/08 Python
使用Python实现跳帧截取视频帧
2019/05/31 Python
在PyTorch中Tensor的查找和筛选例子
2019/08/18 Python
Flask中endpoint的理解(小结)
2019/12/11 Python
python中使用np.delete()的实例方法
2021/02/01 Python
python解包概念及实例
2021/02/17 Python
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
HTML5公共页面提取作为公用代码的方法
2020/06/30 HTML / CSS
地球鞋加拿大官网:Earth Shoes Canada
2020/11/17 全球购物
《大作家的小老师》教学反思
2014/04/16 职场文书
初中学生期末评语
2014/04/24 职场文书
党支部四风整改方案
2014/10/25 职场文书
2014年小学语文工作总结
2014/12/20 职场文书
保管员岗位职责
2015/02/14 职场文书
班主任远程培训研修日志
2015/11/13 职场文书