php下检测字符串是否是utf8编码的代码
作者:bea
functionis_utf8($string){ returnpreg_match('%^(?: [x09x0Ax0Dx20-x7E]#ASCII |[xC2-xDF][x80-xBF]#non-overlong2-byte |xE0[xA0-xBF][x80-xBF]#excludingoverlongs |[xE1-xECxEExEF][x80-xBF]{2}#straight3-byte |xED[x80-x9F][x80-xBF]#excludingsurrogat
function is_utf8($string) {
return preg_match('%^(?:
[x09x0Ax0Dx20-x7E] # ASCII
| [xC2-xDF][x80-xBF] # non-overlong 2-byte
| xE0[xA0-xBF][x80-xBF] # excluding overlongs
| [xE1-xECxEExEF][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);
}
准确率基本和mb_detect_encoding一样,要对一起对,要错一起错。
编码检测不可能100%准确,这个东西已经可以基本满足要求了。
有用 | 无用
return preg_match('%^(?:
[x09x0Ax0Dx20-x7E] # ASCII
| [xC2-xDF][x80-xBF] # non-overlong 2-byte
| xE0[xA0-xBF][x80-xBF] # excluding overlongs
| [xE1-xECxEExEF][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);
}
准确率基本和mb_detect_encoding一样,要对一起对,要错一起错。
编码检测不可能100%准确,这个东西已经可以基本满足要求了。
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- php下intval()和(int)转换使用与区别
- PHP入门学习的几个不错的实例代码
- php通用检测函数集合
- php header()函数使用说明
- php下实现一个阿拉伯数字转中文数字的函数
- 兼容PHP5的PHP目录管理函数库
- php表单提交程序的安全使用方法
- php 防止单引号,双引号在接受页面转义
- 功能齐全的PHP发送邮件类代码附详细说明
- 使用PHP批量生成随机用户名
- 用PHP与XML联手进行网站编程代码实例
- PHP写入WRITE编码为UTF8的文件的实现代码
- PHP远程连接MYSQL数据库非常慢的解决方法
- php文本操作方法集合比较
- [原创]效率较高的php下读取文本文件的代码
- flash+php+mysql打造简单留言本教程
- php5中date()得出的时间为什么不是当前时间的解决方法
- 用PHP程序实现支持页面后退的两种方法
- discuz Passport 通行证 整合笔记