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之第六天
Oct 09 PHP
php smarty模版引擎中的缓存应用
Dec 02 PHP
Apache 配置详解(最好的APACHE配置教程)
Jul 04 PHP
PHP测试程序运行时间的类
Feb 05 PHP
处理(php-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
Jul 03 PHP
PHP和JavaScrip分别获取关联数组的键值示例代码
Sep 16 PHP
WAMP环境中扩展oracle函数库(oci)
Jun 26 PHP
php 升级到 5.3+ 后出现的一些错误,如 ereg(); ereg_replace(); 函数报错
Dec 07 PHP
PHP检测链接是否存在的代码实例分享
May 06 PHP
thinkPHP数据查询常用方法总结【select,find,getField,query】
Mar 15 PHP
ThinkPHP5.0框架结合Swoole开发实现WebSocket在线聊天案例详解
Apr 02 PHP
在PHP中实现使用Guzzle执行POST和GET请求
Oct 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写杨辉三角实例代码
2011/07/17 PHP
PHP把网页保存为word文件的三种方法
2014/04/01 PHP
PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享
2014/09/27 PHP
php实现简单的语法高亮函数实例分析
2015/04/27 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
2018/01/21 PHP
PHP7实现和CryptoJS的AES加密方式互通示例【AES-128-ECB加密】
2019/06/08 PHP
“不能执行已释放的Script代码”错误的原因及解决办法
2007/09/09 Javascript
javascript调试说明
2010/06/07 Javascript
jquery 简短几句代码实现给元素动态添加及获取提示信息
2011/09/01 Javascript
10款非常有用的 Ajax 插件分享
2012/03/14 Javascript
js控制web打印(局部打印)方法整理
2013/05/29 Javascript
jquery购物车实时结算特效实现思路
2013/09/23 Javascript
javascript自动生成包含数字与字符的随机字符串
2015/02/09 Javascript
JS组件Bootstrap Table使用方法详解
2016/02/02 Javascript
jquery点击改变class并toggle的实现代码
2016/05/15 Javascript
理解javascript async的用法
2017/08/22 Javascript
JS实现调用本地摄像头功能示例
2018/05/18 Javascript
vue-router路由懒加载的实现(解决vue项目首次加载慢)
2018/08/28 Javascript
vue使用微信JS-SDK实现分享功能
2019/08/23 Javascript
编写Python的web框架中的Model的教程
2015/04/29 Python
举例讲解Python编程中对线程锁的使用
2016/07/12 Python
《Python学习手册》学习总结
2018/01/17 Python
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
2020/07/20 Python
python批量导入数据进Elasticsearch的实例
2018/05/30 Python
pandas表连接 索引上的合并方法
2018/06/08 Python
python 获取sqlite3数据库的表名和表字段名的实例
2019/07/17 Python
Python小程序之在图片上加入数字的代码
2019/11/26 Python
使用Python实现 学生学籍管理系统
2019/11/26 Python
Python中bisect的使用方法
2019/12/31 Python
TensorBoard 计算图的可视化实现
2020/02/15 Python
自动化专业个人求职信范文
2013/12/30 职场文书
护士求职信范文
2014/05/24 职场文书
酒店办公室主任岗位职责
2015/04/01 职场文书
2019年销售人员的职业生涯规划书
2019/03/25 职场文书
毕业季聚会祝酒词!
2019/07/04 职场文书
用Python创建简易网站图文教程
2021/06/11 Python