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

 更新时间:2016年11月01日 08:41:08   投稿:lqh  
这篇文章主要介绍了php 判断字符串编码是utf-8 或gb2312实例的相关资料,需要的朋友可以参考下

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;
}

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

相关文章

  • WordPress中获取所使用的模板的页面ID的简单方法

    WordPress中获取所使用的模板的页面ID的简单方法

    这篇文章主要介绍了WordPress中获取所使用的模板的页面ID的简单方法,通过这个方法来获取页面的链接是比较方便的,需要的朋友可以参考下
    2015-12-12
  • 解决php扩展安装不生效问题

    解决php扩展安装不生效问题

    这篇文章主要介绍了解决php扩展安装不生效问题,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • 基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码

    基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码

    当双方意见不统一的情况下,需要用投票达成协议,本文通过实例给大家介绍基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码,需要的朋友可以参考下
    2015-08-08
  • php微信开发之图片回复功能

    php微信开发之图片回复功能

    这篇文章主要为大家详细介绍了php微信开发之图片回复功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • php微信授权登录实例讲解

    php微信授权登录实例讲解

    这篇文章主要介绍了php微信授权登录实例讲解,微信授权登录是比较常用的功能,有需要的同学可以研究下
    2021-03-03
  • 用PHP的socket实现客户端到服务端的通信实例详解

    用PHP的socket实现客户端到服务端的通信实例详解

    本篇文章主要介绍了用PHP的socket实现客户端到服务端的通信实例详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-02-02
  • thinkPHP模板中函数的使用方法示例

    thinkPHP模板中函数的使用方法示例

    这篇文章主要介绍了thinkPHP模板中函数的使用方法,结合实例形式对比分析了php函数的单独使用与thinkPHP模板中php函数的相应使用技巧,需要的朋友可以参考下
    2016-11-11
  • CI框架中redis缓存相关操作文件示例代码

    CI框架中redis缓存相关操作文件示例代码

    这篇文章主要介绍了CI框架中redis缓存相关操作文件,结合完整示例演示了CI框架redis缓存相关操作技巧,需要的朋友可以参考下
    2016-05-05
  • php优化查询foreach代码实例讲解

    php优化查询foreach代码实例讲解

    这篇文章主要介绍了php优化查询foreach代码实例讲解,列举了代码实例和测试结果,有感兴趣的同学可以学习下
    2021-03-03
  • php制作的简单验证码识别代码

    php制作的简单验证码识别代码

    近期研究一些突破验证码方面的知识,记录下来。一方面算是对这几天学习知识的总结帮助自己理解;另一方面希望对研究这方面的技术同学有所帮助;另外也希望引起网站管理者的注意,在提供验证码时多些考虑进去。由于刚刚接触这方面的知识,理解比较浅显,有错误再所难免
    2016-01-01

最新评论