php 检测字符编码代码
发布时间:2020-12-13 20:48:18 所属栏目:PHP教程 来源:网络整理
导读:function utf8_gb2312( $str , $default = gb2312 ) { $str =preg_replace( /[x01-x7f]+/ , , $str ); if ( empty empty ( $str )) return $default ; $preg = array ( gb2312 = /^([xa1-xf7][xa0-xfe])+$/ , //正则判断是否是gb2312 utf-8 = /^[x{4e00}-x{9
默认编码是gb2312,而且我统计了一下,90%的情况下都是gb2312,所以,我的检测函数不能出现本来是gb2312的,结果被检测出utf8. 基本思路是: 1. 把所有的ascii去掉,如果全部都是ascii,那么就是gb2312。 2. 假设这个字符串是gb2312,用一个正则检查它是否是真的gb2312,如果不是,那么就是utf-8 3. 然后,用iconv 把字符串转换成utf8,如果转换不成功,那么原来可能不是真正的一个gb2312编码的字符(用正则匹配我已经尽量精确,但是,gb2312的编码不是连续的,还是会有空洞),那么最后的编码就是utf-8. 4. 否则就是gb2312 编码:加入这样的检查功能后,在1000个关键字里面,就出现了1个乱码,比以前的近100个关键字乱码少了很多。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |