源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

关于PHP自动判断字符集并转码的详解

  • 时间:2020-10-06 06:33 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:关于PHP自动判断字符集并转码的详解
原理很简单,因为gb2312/gbk是中文两字节,这两个字节是有取值范围的,而utf-8中汉字是三字节,同样每个字节也有取值范围。而英文不 管在何种编码情况下,都是小于128,只占用一个字节(全角除外)。 如果是文件形式的编码检查,还可以直接check utf-8的BOM信息。话不多说,直接上函数,这个函数是用来对字符串进行检查和转码的。
[u]复制代码[/u] 代码如下:
<?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);    } ?>
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部