zoukankan      html  css  js  c++  java
  • 判断字符串编码思路

    1、方法1

    PHP Code
    1. function mb_is_utf8($string)   
    2. {   
    3.     return mb_detect_encoding($string'UTF-8') === 'UTF-8';//新发现   
    4. }  


    2、方法2

    PHP Code
    1. function preg_is_utf8($string)   
    2. {   
    3.     return preg_match('/^.*$/u'$string) > 0;//preg_match('/^./u', $string)   
    4. }  


    3、方法3

    PHP Code
    1. function is_utf8_1($str)   
    2. {   
    3.     $c=0; $b=0;   
    4.     $bits=0;   
    5.     $len=strlen($str);   
    6.     for($i=0; $i<$len$i++){   
    7.         $c=ord($str[$i]);   
    8.         if($c > 128){   
    9.             if(($c >= 254)) return false;   
    10.             elseif($c >= 252) $bits=6;   
    11.             elseif($c >= 248) $bits=5;   
    12.             elseif($c >= 240) $bits=4;   
    13.             elseif($c >= 224) $bits=3;   
    14.             elseif($c >= 192) $bits=2;   
    15.             else return false;   
    16.             if(($i+$bits) > $lenreturn false;   
    17.             while($bits > 1){   
    18.                 $i++;   
    19.                 $b=ord($str[$i]);   
    20.                 if($b < 128 || $b > 191) return false;   
    21.                 $bits--;   
    22.             }   
    23.         }   
    24.     }   
    25.     return true;   
    26. }  


    4、方法四

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


    5、方法五

    PHP Code
    1. function isUTF8($string)   
    2. {   
    3.     return (utf8_encode(utf8_decode($string)) == $string);   
    4. }  
     
     

    //判断字符串是什么编码
    if ($tag === mb_convert_encoding(mb_convert_encoding($tag, "GB2312", "UTF-8"), "UTF-8", "GB2312")) {

    }
    else {//如果是gb2312 的就转换为utf8的
    $tag = mb_convert_encoding($tag, 'UTF-8', 'GB2312');
    }

  • 相关阅读:
    HTML5
    9.13 开课第十天(JS脚本语音:语句:循环)
    php函数
    php基础语法
    mysql常用函数整理
    数据库经典练习题整理
    数据库练习小结
    数据库:高级查询
    CRUD操作
    SQL语句
  • 原文地址:https://www.cnblogs.com/JustSoSo/p/3706504.html
Copyright © 2011-2022 走看看