PHP获取字符串编码类型

发布者: seasun

mb_convert_encoding函数就是那个可以自动识别原字符串编码的函数,但在使用中,发现GBK中的某些汉字被它转成了乱码。

后来又在手册上找到了is_utf8函数,这样,再结合iconv函数,我的问题就解决了。下面帖出这个函数:

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);
} // function is_utf8

如果想深入研究,建议看下PHP手册上的“Multibyte String Functions”这一部分的内容。

转载请标注编辑来源:PHP获取字符串编码类型

我想网 板凳 编辑

Tags: ,

分享
QQ书签
百度搜藏
Del.icio.us
Google书签
和讯网摘
天极网摘

回复已关闭.