用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > php教程

php判断字符串编码函数

时间:2015-01-23  来源:西部数据  作者:西部数据

字符编码判断是我们时常全用于的一些东西,特别是我想判断用户输入的或提交过来的字符是什么编码从而进行有效的处理,下面我来给大家介绍php判断字符串编码函数.

  1. mb_detect_encoding()($str); 
  2. //判断字符串是什么编码 
  3. if ($tag === mb_convert_encoding(mb_convert_encoding($tag"GB2312""UTF-8"), "UTF-8""GB2312")) { 
  4. else {//如果是gb2312 的就转换为utf8的 
  5. $tag = mb_convert_encoding($tag'UTF-8''GB2312'); 

函数可以检测编码不过使用该函数必须打开php的extension=php_mbstring.dll扩展,如果大家使用的是空间而没修改php.ini配置文件夹的权限会不会有更好的函数来检查字符串编码呢,答应是肯定的.

判断字符串是否为UTF-8编码,代码如下:

  1. /** 
  2.  +---------------------------------------------------------- 
  3.  * 检查字符串是否是UTF8编码 
  4.  +---------------------------------------------------------- 
  5.  * @param string $string 字符串 
  6.  +---------------------------------------------------------- 
  7.  * @return Boolean 
  8.  +---------------------------------------------------------- 
  9.  */ 
  10. function is_utf8($string
  11.     return preg_match('%^(?: 
  12.          [x09x0Ax0Dx20-x7E]            # ASCII 
  13.        | [xC2-xDF][x80-xBF]             # non-overlong 2-byte 
  14.        |  xE0[xA0-xBF][x80-xBF]        # excluding overlongs 
  15.        | [xE1-xECxEExEF][x80-xBF]{2}  # straight 3-byte 
  16.        |  xED[x80-x9F][x80-xBF]        # excluding surrogates 
  17.        |  xF0[x90-xBF][x80-xBF]{2}     # planes 1-3 
  18.        | [xF1-xF3][x80-xBF]{3}          # planes 4-15 
  19.        |  xF4[x80-x8F][x80-xBF]{2}     # plane 16 
  20.    )*$%xs', $string); 

可检查出GB2312还是UTF-8,代码如下:

  1. function is_gb2312($str
  2.         for($i=0; $i<strlen($str); $i++) { 
  3.                 $v = ord( $str[$i] ); 
  4.                 if$v > 127) { 
  5.                         if( ($v >= 228) && ($v <= 233) ) 
  6.                         { //开源代码phpfensi.com 
  7.                                 if( ($i+2) >= (strlen($str) - 1)) return true;  // not enough 
  8. characters 
  9.                                 $v1 = ord( $str[$i+1] ); 
  10.                                 $v2 = ord( $str[$i+2] ); 
  11.                                 if( ($v1 >= 128) && ($v1 <=191) && ($v2 >=128) && ($v2 <= 191) ) // utf  
  12. 编码 
  13.                                         return false; 
  14.                                 else 
  15.                                         return true; 
  16.                         } 
  17.                 } 
  18.         } 
  19.         return true; 

有些朋友说可以使用mb_check_encoding函数来检查,这个本人没测试过大家可自行测试.

来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
    无相关信息
栏目更新
栏目热门