温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PHP自动判断字符集并转码的方法

发布时间:2021-03-06 15:01:15 来源:亿速云 阅读:198 作者:小新 栏目:开发技术

小编给大家分享一下PHP自动判断字符集并转码的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

原理很简单,因为gb2312/gbk是中文两字节,这两个字节是有取值范围的,而utf-8中汉字是三字节,同样每个字节也有取值范围。而英文不 管在何种编码情况下,都是小于128,只占用一个字节(全角除外)。
如果是文件形式的编码检查,还可以直接check utf-8的BOM信息。话不多说,直接上函数,这个函数是用来对字符串进行检查和转码的。

<?php
function safeEncoding($string,$outEncoding ='UTF-8')    
{    
 $encoding = "UTF-8";    
 for($i=0;$i<strlen($string);$i++)    
 {    
  if(ord($string{$i})<128)    
        continue;    
  if((ord($string{$i})&224)==224)    
  {    
     //第一个字节判断通过    
       $char = $string{++$i};    
     if((ord($char)&128)==128)    
       {    
             //第二个字节判断通过    
           $char = $string{++$i};    
             if((ord($char)&128)==128)    
           {    
                $encoding = "UTF-8";    
                break;    
           }    
         }    
   }    
  if((ord($string{$i})&192)==192)    
       {    
           //第一个字节判断通过    
          $char = $string{++$i};    
         if((ord($char)&128)==128)    
           {    
            // 第二个字节判断通过    
                $encoding = "GB2312";    
    break;    
   }    
      }    
 }    
 if(strtoupper($encoding) == strtoupper($outEncoding))    
  return $string;    
 else   
        return iconv($encoding,$outEncoding,$string);    
}
?>

以上是“PHP自动判断字符集并转码的方法”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI