完美的2个php检测字符串是否是utf-8编码函数分享


Posted in PHP onJuly 28, 2014

在php开发中有时候会用到转码函数,比如iconv(),mb_convert_encoding()函数,在用函数转码的时候或者解码的时候我们有时候需要先判断当前字符串编码类型,不如是否是utf-8编码,是的话然后进行编码转换等操作。下面是小编整理的目前web开发中网上使用率比较高的、好的php关于UTF-8编码的判断函数,代码如下:

function is_utf8($string) //函数一
{
// From http://w3.org/International/questions/qa-forms-utf-8.html
return preg_match(‘%^(?:
[\x09\x0A\x0D\x20-\x7E] # ASCII
| [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
| \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
| \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
| \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
| [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
| \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
)*$%xs', $string);
}

function mb_is_utf8($string) //函数二
{
return mb_detect_encoding($string, ‘UTF-8′) === ‘UTF-8′;
}

mb_detect_encoding()函数是php的一个内置函数,用来判断当前字符串编码类型,此函数有三个参数,第一个参数是要判断的字符串,第二个参数是比较的字符编码列表,可以使字符串,也可以是数组,第三个参数是要求。
希望这两个函数对需要的Phper有所帮助。

PHP 相关文章推荐
支持数组的ADDSLASHES的php函数
Feb 16 PHP
在PHP中使用curl_init函数的说明
Nov 02 PHP
php统计文件大小,以GB、MB、KB、B输出
May 29 PHP
巧用php中的array_filter()函数去掉多维空值的代码分享
Sep 07 PHP
Zend的AutoLoad机制介绍
Sep 27 PHP
php通过array_push()函数添加多个变量到数组末尾的方法
Mar 18 PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
Jun 24 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
Mar 07 PHP
[原创]解决wincache不支持64位PHP5.5/5.6的问题(提供64位wincache下载)
Jun 22 PHP
详谈配置phpstorm完美支持Codeigniter(CI)代码自动完成(代码提示)
Apr 07 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
Feb 21 PHP
YII2框架中ActiveDataProvider与GridView的配合使用操作示例
Mar 18 PHP
php5.3以后的版本连接sqlserver2000的方法
Jul 28 #PHP
php中把美国时间转为北京时间的自定义函数分享
Jul 28 #PHP
php的mkdir()函数创建文件夹比较安全的权限设置方法
Jul 28 #PHP
php中error与exception的区别及应用
Jul 28 #PHP
浅析get与post的一些特殊情况
Jul 28 #PHP
thinkphp学习笔记之多表查询
Jul 28 #PHP
CMS中PHP判断系统是否已经安装的方法示例
Jul 26 #PHP
You might like
PHP 高手之路(二)
2006/10/09 PHP
PHP将DateTime对象转化为友好时间显示的实现代码
2011/09/20 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
javascript 自动转到命名锚记
2009/01/10 Javascript
js onkeypress与onkeydown 事件区别详细说明
2012/12/13 Javascript
JS防止用户多次提交的简单代码
2013/08/01 Javascript
javascript查找字符串中出现最多的字符和次数的小例子
2013/10/29 Javascript
js特殊字符转义介绍
2013/11/05 Javascript
jquery分割字符串的方法
2015/06/24 Javascript
JavaScript省市区三级联动菜单效果
2016/09/21 Javascript
基于JavaScript中标识符的命名规则介绍
2018/01/06 Javascript
vue router 跳转后回到顶部的实例
2018/08/31 Javascript
vue单页缓存存在的问题及解决方案(小结)
2018/09/25 Javascript
详解webpack打包第三方类库的正确姿势
2018/10/20 Javascript
Flutter 超实用简单菜单弹出框 PopupMenuButton功能
2019/08/06 Javascript
详解微信小程序开发之formId使用(模板消息)
2019/08/27 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
2020/04/01 Javascript
python获得linux下所有挂载点(mount points)的方法
2015/04/29 Python
Python闭包执行时值的传递方式实例分析
2018/06/04 Python
Numpy数据类型转换astype,dtype的方法
2018/06/09 Python
Python Excel处理库openpyxl使用详解
2019/05/09 Python
Pycharm同步远程服务器调试的方法步骤
2020/11/04 Python
linux centos 7.x 安装 python3.x 替换 python2.x的过程解析
2020/12/14 Python
css3中背景尺寸background-size详解
2014/09/02 HTML / CSS
百思买美国官网:Best Buy
2016/07/28 全球购物
韩国11街:11STREET
2018/03/27 全球购物
Opodo意大利:欧洲市场上领先的在线旅行社
2019/10/24 全球购物
自荐信结尾
2013/10/27 职场文书
网络管理员岗位职责
2014/03/17 职场文书
领导班子对照检查材料
2014/09/22 职场文书
2015年党风廉政承诺书
2015/01/22 职场文书
中国合伙人观后感
2015/06/02 职场文书
终止解除劳动合同证明书
2015/06/17 职场文书
推荐六本经典文学奖书籍:此生必读
2019/08/22 职场文书
Nginx 根据URL带的参数转发的实现
2021/04/01 Servers
Linux安装Docker详细教程
2022/07/07 Servers