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 相关文章推荐
深入了解php4(1)--回到未来
Oct 09 PHP
set_include_path在win和linux下的区别
Jan 10 PHP
如何给phpcms v9增加类似于phpcms 2008中的关键词表
Jul 01 PHP
PHP中的socket_read和socket_recv区别详解
Feb 09 PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
Mar 26 PHP
3种php生成唯一id的方法
Nov 23 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
Aug 17 PHP
php实现微信支付之现金红包
May 30 PHP
Laravel中10个有用的用法小结
May 06 PHP
Yii框架通过请求组件处理get,post请求的方法分析
Sep 03 PHP
php设计模式之工厂模式用法经典实例分析
Sep 20 PHP
laravel框架语言包拓展实现方法分析
Nov 22 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
论建造顺序的重要性
2020/03/04 星际争霸
PHP中shuffle数组值随便排序函数用法
2014/11/21 PHP
php微信开发之图片回复功能
2018/06/14 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
JS中彻底删除JSON对象组成的数组中的元素
2020/09/22 PHP
JS 遮照层实现代码
2010/03/31 Javascript
BOM与DOM的区别分析
2010/10/26 Javascript
Javascript实现关联数据(Linked Data)查询及注意细节
2013/02/22 Javascript
详解Bootstrap四种图片样式
2016/01/04 Javascript
js利用正则表达式检验输入内容是否为网址
2016/07/05 Javascript
js动态生成form 并用ajax方式提交的实现方法
2016/09/09 Javascript
微信小程序 购物车简单实例
2016/10/24 Javascript
微信小程序 省市区选择器实例详解(附源码下载)
2017/01/05 Javascript
轻松理解vue的双向数据绑定问题
2017/10/30 Javascript
cocos2dx+lua实现橡皮擦功能
2018/12/20 Javascript
JS使用正则表达式提交页面验证的代码
2019/10/16 Javascript
vue 解决form表单提交但不跳转页面的问题
2019/10/30 Javascript
[56:57]LGD vs VP 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第一场 8.20.mp4
2019/08/22 DOTA
python使用itchat库实现微信机器人(好友聊天、群聊天)
2018/01/04 Python
python 3调用百度OCR API实现剪贴板文字识别
2018/09/04 Python
Python字典底层实现原理详解
2019/12/18 Python
Python PyPDF2模块安装使用解析
2020/01/19 Python
pandas中read_csv、rolling、expanding用法详解
2020/04/21 Python
中国京东和泰国中央集团合资的网站:JD CENTRAL
2020/08/22 全球购物
实习评语
2013/12/16 职场文书
2014年五一活动策划方案
2014/03/15 职场文书
员工合理化建议书
2014/05/19 职场文书
生物科学专业毕业生求职信
2014/06/02 职场文书
2014年自愿离婚协议书范本
2014/09/25 职场文书
2014年助理政工师工作总结
2014/12/19 职场文书
家长会主持词开场白
2015/05/29 职场文书
导游词之安徽九华山
2019/09/18 职场文书
Python机器学习三大件之一numpy
2021/05/10 Python
解决Python中的modf()函数取小数部分不准确问题
2021/05/28 Python
详解Spring事件发布与监听机制
2021/06/30 Java/Android
JavaScript选择器函数querySelector和querySelectorAll
2021/11/27 Javascript