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里的JS打印函数
Oct 09 PHP
php 特殊字符处理函数
Sep 05 PHP
Smarty Foreach 使用说明
Mar 23 PHP
ueditor 1.2.6 使用方法说明
Jul 24 PHP
php操作redis中的hash和zset类型数据的方法和代码例子
Jul 05 PHP
微信公众号开发之微信公共平台消息回复类实例
Nov 14 PHP
PHP使用xmllint命令处理xml与html的方法
Dec 15 PHP
php在数组中查找指定值的方法
Mar 17 PHP
php实现倒计时效果
Dec 19 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
Mar 08 PHP
laravel 数据迁移与 Eloquent ORM的实现方法
Apr 12 PHP
PHP中的self关键字详解
Jun 23 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
ninety plus是什么?ninety plus咖啡好吗?
2021/03/04 新手入门
分页显示Oracle数据库记录的类之一
2006/10/09 PHP
codeigniter数据库操作函数汇总
2014/06/12 PHP
PHP+Javascript实现在线拍照功能实例
2015/07/18 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
2015/12/30 PHP
PHP使用glob方法遍历文件夹下所有文件的实例
2018/10/17 PHP
CSS3画一个阴阳八卦图
2021/03/09 HTML / CSS
JQuery FlexiGrid的asp.net完美解决方案 dotNetFlexGrid-.Net原生的异步表格控件
2010/09/12 Javascript
Jquery拖拽并简单保存的实现代码
2010/11/28 Javascript
易操作的jQuery表单提示插件
2015/12/01 Javascript
jQuery基于cookie实现的购物车实例分析
2015/12/24 Javascript
JavaScript简单实现弹出拖拽窗口(一)
2016/06/17 Javascript
jquery表单验证插件validation使用方法详解
2017/01/20 Javascript
使用JavaScript判断用户输入的是否为正整数(两种方法)
2017/02/05 Javascript
vue自定义移动端touch事件之点击、滑动、长按事件
2018/07/10 Javascript
前端Electron新手入门教程详解
2019/06/21 Javascript
JS常见面试试题总结【去重、遍历、闭包、继承等】
2019/08/27 Javascript
JavaScript实现栈结构Stack过程详解
2020/03/07 Javascript
vue data对象重新赋值无效(未更改)的解决方式
2020/07/24 Javascript
[01:13:18]Secret vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
[57:59]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第一场 11.05
2020/11/05 DOTA
python集合类型用法分析
2015/04/08 Python
Python 文件处理注意事项总结
2017/04/10 Python
python如何从文件读取数据及解析
2019/09/19 Python
python实现连续变量最优分箱详解--CART算法
2019/11/22 Python
Python调用.NET库的方法步骤
2019/12/27 Python
解决pip install psycopg2出错问题
2020/07/09 Python
Java Unsafe类实现原理及测试代码
2020/09/15 Python
美国在线购买和出售礼品卡网站:EJ Gift Cards
2019/06/09 全球购物
MATCHESFASHION澳大利亚/亚太地区:英国时尚奢侈品电商
2020/01/14 全球购物
商务专员岗位职责
2013/11/23 职场文书
《狐假虎威》教学反思
2014/02/07 职场文书
家长写给孩子的评语
2014/04/18 职场文书
小学生安全教育心得体会
2016/01/15 职场文书
Python中非常使用的6种基本变量的操作与技巧
2022/03/22 Python
新的CSS 伪类函数 :is() 和 :where()示例详解
2022/08/05 HTML / CSS