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用header函数实现301跳转代码实例
Nov 25 PHP
ThinkPHP空模块和空操作详解
Jun 30 PHP
PHP中模拟处理HTTP PUT请求的例子
Jul 22 PHP
PHP 正则表达式小结
Feb 12 PHP
PHP之正则表达式捕获组与非捕获组(详解)
Jul 29 PHP
百度地图经纬度转换到腾讯地图/Google 对应的经纬度
Aug 28 PHP
fsockopen pfsockopen函数被禁用,SMTP发送邮件不正常的解决方法
Sep 20 PHP
PHP与Ajax相结合实现登录验证小Demo
Mar 16 PHP
php获取'/'传参的值简单方法
Jul 13 PHP
浅析PHP数据导出知识点
Feb 17 PHP
PHP常见字符串操作函数与用法总结
Mar 04 PHP
PHP实现微信小程序用户授权的工具类示例
Mar 05 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
Windows2003 下 MySQL 数据库每天自动备份
2006/12/21 PHP
二级域名转向类
2006/11/09 Javascript
驱动事件的addEvent.js代码
2007/03/27 Javascript
收藏Javascript中常用的55个经典技巧
2007/08/12 Javascript
jQuery dialog 异步调用ashx,webservice数据的代码
2010/08/03 Javascript
javascript预览上传图片发现的问题的解决方法
2010/11/25 Javascript
JavaScript中的类与实例实现方法
2015/01/23 Javascript
JavaScript搜索字符串并将搜索结果返回到字符串的方法
2015/04/06 Javascript
简单实现js选项卡切换效果
2017/02/09 Javascript
jquery实现直播弹幕效果
2019/11/28 jQuery
python基础教程之数字处理(math)模块详解
2014/03/25 Python
零基础写python爬虫之爬虫框架Scrapy安装配置
2014/11/06 Python
Python语言的面相对象编程方式初步学习
2016/03/12 Python
Python语言实现获取主机名根据端口杀死进程
2016/03/31 Python
Python正则简单实例分析
2017/03/21 Python
python利用dir函数查看类中所有成员函数示例代码
2017/09/08 Python
解决Python的str强转int时遇到的问题
2018/04/09 Python
Python使用pylab库实现绘制直方图功能示例
2018/06/01 Python
Python中关键字global和nonlocal的区别详解
2018/09/03 Python
Python3 SSH远程连接服务器的方法示例
2018/12/29 Python
Python中整数的缓存机制讲解
2019/02/16 Python
python config文件的读写操作示例
2019/09/27 Python
python如何获取apk的packagename和activity
2020/01/10 Python
Python中socket网络通信是干嘛的
2020/05/27 Python
PyCharm设置注释字体颜色以及是否倾斜的操作
2020/09/16 Python
林清轩官方网站:山茶花润肤油开创者
2016/10/26 全球购物
服务员自我评价
2014/01/25 职场文书
舞蹈毕业生的自我评价
2014/03/05 职场文书
我的中国心演讲稿
2014/09/04 职场文书
检察院对照“四风”认真查找问题落实整改措施
2014/09/26 职场文书
2014年财务部工作总结
2014/11/11 职场文书
2015年宣传部工作总结范文
2015/03/31 职场文书
2015年新农村建设工作总结
2015/05/22 职场文书
2016年会开场白台词
2015/06/01 职场文书
中学生打架《检讨书》范文
2019/08/12 职场文书
交互式可视化js库gojs使用介绍及技巧
2022/02/18 Javascript