How to check the charset of string?

前端 未结 7 1825
心在旅途
心在旅途 2021-02-04 08:48

How do I check if the charset of a string is UTF8?

7条回答
  •  Happy的楠姐
    2021-02-04 09:23

    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);   
    

    }

    I have checked. This function is effective.

提交回复
热议问题