php下检测字符串是否是utf8编码的代码
function is_utf8($string) {
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);
}
准确率基本和mb_detect_encoding一样,要对一起对,要错一起错。
编码检测不可能100%准确,这个东西已经可以基本满足要求了。
相关推荐
-
PHP安全的URL字符串base64编码和解码
如果直接使用base64_encode和base64_decode方法的话,生成的字符串可能不适用URL地址.下面的方法可以解决该问题: URL安全的字符串编码: 复制代码 代码如下: function urlsafe_b64encode($string) { $data = base64_encode($string); $data = str_replace(array('+','/','='),array('-','_',''),$data); return $data;
-
解析php获取字符串的编码格式的方法(函数)
如果不清楚字符串的编码格式的话,就可以将这段字符这样检查:$encode = mb_detect_encoding($string, array("ASCII",'UTF-8′,"GB2312′,"GBK",'BIG5′)); echo $encode;这样就能知道它是什么编码的了.后续操作还可以为其转码:if ($encode == "UTF-8″){$string = iconv("UTF-8″,"GBK",$s
-
PHP详解ASCII码对照表与字符转换
一,通用的ASCII码对照表 图解ASCII码对照表图,以字符A为例Dec表示十进制,如65Hx表示十六进制,如41Oct表示八进制,如101Char表示显示字符,如A ASCII码对照表图分为两个单元1,控制字符 0-31和1272,可显示字符 32-126(1)48-57为0到9十个阿拉伯数字:(2)65-90为26个大写英文字母:(3)97-122号为26个小写英文字母:(4)其它标点符号.运算符号等: 二,ASCII扩展码对照表 三,PHP字符转换函数说明 具体字符转换函数说明请参考[P
-
php中支持多种编码的中文字符串截取函数!
支持多种编码的中文字符串截取函数! 复制代码 代码如下: /* * @todo 中文截取,支持gb2312,gbk,utf-8,big5 * * @param string $str 要截取的字串 * @param int $start 截取起始位置 * @param int $length 截取长度 * @param string $charset utf-8|gb2312|gbk|big5 编码 * @param $suffix
-
php实现HTML实体编号与非ASCII字符串相互转换类实例
HTML实体符号被用作实现保留字符(reserved characters)或者表达键盘无法输入的一些常用字符.在大多数浏览器中默认的字符集为ISO-8859-1.HTML实体符号我们在网页设计中经常用到. 例如: 因工作需要,编写了一个HTML实体编号与非ASCII字符串相互转换类,代码如下: HtmlEntitie.class.PHP <?php /** * HTML实体编号与非ASCII字符串相互转换类 * Date: 2016-09-07 * Author: fdipzone * Ver
-
php自动获取字符串编码函数mb_detect_encoding
当在php中使用mb_detect_encoding函数进行编码识别时,很多人都碰到过识别编码有误的问题,例如对与GB2312和UTF- 8,或者UTF-8和GBK(这里主要是对于cp936的判断),网上说是由于字符短是,mb_detect_encoding会出现误判. 例如: 复制代码 代码如下: $encode = mb_detect_encoding($keytitle, array("ASCII",'UTF-8′,"GB2312′,"GBK",'B
-
PHP实现ASCII码与字符串相互转换的方法
本文实例讲述了PHP实现ASCII码与字符串相互转换的方法.分享给大家供大家参考,具体如下: <?php class ascii { /** * 将ascii码转为字符串 * @param type $str 要解码的字符串 * @param type $prefix 前缀,默认:&# * @return type */ function decode($str, $prefix="&#") { $str = str_replace($prefix, "
-
PHP 截取字符串 分别适合GB2312和UTF8编码情况
1. 截取GB2312中文字符串 复制代码 代码如下: <?php //截取中文字符串 function mysubstr($str, $start, $len) { $tmpstr = ""; $strlen = $start + $len; for($i = 0; $i < $strlen; $i++) { if(ord(substr($str, $i, 1)) > 0xa0) { $tmpstr .= substr($str, $i, 2); $i++; }
-
php小技巧之过滤ascii控制字符
还记得以前在工作中,将爬来的其它网站的数据导到xml.但是会遇到一个问题:即网页会有ascII的控制字符.一开始以为是别人为了防止采集而加入的,然后发现一个就往过滤表里加一个.直到慢慢发现,他们都是ascii表里的字符.找到原因了,就好解决了. 复制代码 代码如下: /** * 根据ascii码过滤控制字符 * @param type $string */public static function special_filter($string) { if(!$string) retur
-
浅析PHP中的字符串编码转换(自动识别原编码)
复制代码 代码如下: /** * 对数据进行编码转换 * @param array/string $data 数组 * @param string $output 转换后的编码 */function array_iconv($data,$output = 'utf-8') { $encode_arr = array('UTF-8','ASCII','GBK','GB2312','BIG5','JIS','eucjp-win','sjis-win','EUC-JP'); $enc
-
浅析PHP的ASCII码转换类
复制代码 代码如下: class ascii{function decode($str){ preg_match_all( "/(d{2,5})/", $str,$a); $a = $a[0]; foreach ($a as $dec) { if ($dec < 128) { $utf .= chr($dec); } else if ($dec < 2048)
-
php实现图片转换成ASCII码的方法
本文实例讲述了php实现图片转换成ASCII码的方法.分享给大家供大家参考.具体如下: php图片转换成ASCII码,转换后可以直接通过字符串显示图片 <html> <head> <title>Ascii</title> <style> body{ line-height:0; font-size:1px; } </style> </head> <body> <?php $image = 'image.j
随机推荐
- FCKeditor 在chrome中不显示问题
- SQLServer中汇总功能的使用GROUPING,ROLLUP和CUBE
- jQuery正则表达式的使用方法步骤详解
- java 学习笔记(入门篇)_程序流程控制结构和方法
- Java通过匿名类来实现回调函数实例总结
- Java数组的扩容代码示例
- Python 字典dict使用介绍
- 手机端js和html5刮刮卡效果
- 获取服务器信息的Shell脚本分享(ubuntu、centos测试通过)
- jquery offset函数应用实例
- jQuery布局组件EasyUI Layout使用方法详解
- jQuery响应enter键的实现思路
- apache rewrite防盗链三例
- c# 接口interface基础入门小例子
- 利用C#实现网络爬虫
- 用DNSPod和Squid打造自己的CDN (四)
- 结合C++11的新特性来解析C++中的枚举与联合
- PHP函数超时处理方法
- c# asp .net 动态创建sql数据库表的方法
- vue项目总结之文件夹结构配置详解