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 foreach 参数强制类型转换的问题
Dec 10 PHP
PHP 自定义错误处理函数的使用详解
May 10 PHP
一个PHP的远程图片抓取函数分享
Sep 25 PHP
3款值得推荐的微信开发开源框架
Oct 28 PHP
Yii使用ajax验证显示错误messagebox的解决方法
Dec 03 PHP
ioncube_loader_win_5.2.dll的错误解决方法
Jan 04 PHP
PHP关联数组实现根据元素值删除元素的方法
Jun 26 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
Dec 22 PHP
PHP实现的DES加密解密类定义与用法示例
Nov 02 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
Oct 12 PHP
php探针不显示内存解决方法
Sep 17 PHP
使用laravel的Eloquent模型如何获取数据库的指定列
Oct 17 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安全之直接用$获取值而不$_GET 字符转义
2012/06/03 PHP
PHP 类相关函数的使用详解
2013/05/10 PHP
php实现的ping端口函数实例
2014/11/12 PHP
php通过array_push()函数添加多个变量到数组末尾的方法
2015/03/18 PHP
WordPress中邮件的一些修改和自定义技巧
2015/12/15 PHP
PHP sleep()函数, usleep()函数
2016/08/25 PHP
javascript基础知识大全 便于大家学习,也便于我自己查看
2012/08/17 Javascript
js判断两个日期是否相等的方法
2013/09/10 Javascript
js实现鼠标经过表格行变色的方法
2015/05/12 Javascript
JQuery实现动态添加删除评论的方法
2015/05/18 Javascript
Javascrip实现文字跳动特效
2016/11/27 Javascript
Bootstrap table使用方法总结
2017/05/10 Javascript
简单实现jQuery上传图片显示预览功能
2020/06/29 jQuery
[10:07]2014DOTA2国际邀请赛 实拍选手现场观战DK对阵Titan
2014/07/12 DOTA
对于Python的Django框架部署的一些建议
2015/04/09 Python
复习Python中的字符串知识点
2015/04/14 Python
简单介绍Python中的round()方法
2015/05/15 Python
Python实现LRU算法的2种方法
2015/06/24 Python
Python中的fileinput模块的简单实用示例
2015/07/09 Python
Python实现简单的语音识别系统
2017/12/13 Python
Python实现求解括号匹配问题的方法
2018/04/17 Python
django-crontab 定时执行任务方法的实现
2019/09/06 Python
使用Pytorch来拟合函数方式
2020/01/14 Python
Python OpenCV读取显示视频的方法示例
2020/02/20 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
2020/03/08 Python
python--shutil移动文件到另一个路径的操作
2020/07/13 Python
Ibood荷兰:互联网每日最佳在线优惠
2019/02/28 全球购物
美国第一大药店连锁机构:Walgreens(沃尔格林)
2019/10/10 全球购物
五一家具促销方案
2014/01/10 职场文书
员工工作表扬信范文
2014/01/13 职场文书
2014年单位植树节活动方案
2014/03/23 职场文书
服务承诺书格式
2014/05/21 职场文书
2015年酒店服务员工作总结
2015/05/18 职场文书
python基础之while循环语句的使用
2021/04/20 Python
python基于tkinter制作下班倒计时工具
2021/04/28 Python
Node与Python 双向通信的实现代码
2021/07/16 Javascript