加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php 判断字符串编码是utf-8 还是gb2312

发布时间:2020-12-13 05:17:24 所属栏目:PHP教程 来源:网络整理
导读:第一种方法: function is_gb2312($str) { for($i=0; $i $v = ord( $str[$i] ); if( $v > 127) { if( ($v >= 228) ($v { if( ($i+2) >= (strlen($str) - 1)) return true; // not enough characters $v1 = ord( $str[$i+1] ); $v2 = ord( $str[$i+2] ); if(

第一种方法:

function is_gb2312($str)

{

for($i=0; $i

$v = ord( $str[$i] );

if( $v > 127) {

if( ($v >= 228) && ($v <= 233) )

{

if( ($i+2) >= (strlen($str) - 1)) return true; // not enough characters

$v1 = ord( $str[$i+1] );

$v2 = ord( $str[$i+2] );

if( ($v1 >= 128) && ($v1 <=191) && ($v2 >=128) && ($v2 <= 191) ) // utf编码

return false;

else

return true;

}

}

}

return true;

}

第二种方法:

/**

* 判断字符串是utf-8 还是gb2312

* @param unknown $str

* @param string $default

* @return string

*/

public static function utf8_gb2312($str,$default = 'gb2312')

{

$str = preg_replace("/[x01-x7F]+/","",$str);

if (empty($str)) return $default;

$preg = array(

"gb2312" => "/^([xA1-xF7][xA0-xFE])+$/",//正则判断是否是gb2312

"utf-8" => "/^[x{4E00}-x{9FA5}]+$/u",//正则判断是否是汉字(utf8编码的条件了),这个范围实际上已经包含了繁体中文字了

);

if ($default == 'gb2312') {

$option = 'utf-8';

} else {

$option = 'gb2312';

}

if (!preg_match($preg[$default],$str)) {

return $option;

}

$str = @iconv($default,$option,$str);

//不能转成 $option,说明原来的不是 $default

if (empty($str)) {

return $option;

}

return $default;

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读