熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PHP編程 >> 正文

關於PHP自動判斷字符集並轉碼的詳解

2013-11-15 12:30:06  來源: PHP編程 

  原理很簡單因為gb/gbk是中文兩字節這兩個字節是有取值范圍的而utf中漢字是三字節同樣每個字節也有取值范圍而英文不 管在何種編碼情況下都是小於只占用一個字節(全角除外)
如果是文件形式的編碼檢查還可以直接check utf的BOM信息話不多說直接上函數這個函數是用來對字符串進行檢查和轉碼的

復制代碼 代碼如下:

  
<?php
function safeEncoding($string$outEncoding =UTF)
{
$encoding = "UTF";
for($i=;$i<strlen($string);$i++)
{
if(ord($string{$i})<)
continue;

if((ord($string{$i})&)==)
{
//第一個字節判斷通過
$char = $string{++$i};
if((ord($char)&)==)
{
//第二個字節判斷通過
$char = $string{++$i};
if((ord($char)&)==)
{
$encoding = "UTF";
break;
}
}
}

if((ord($string{$i})&)==)
{
//第一個字節判斷通過
$char = $string{++$i};
if((ord($char)&)==)
{
// 第二個字節判斷通過
$encoding = "GB";
break;
}
}
}

if(strtoupper($encoding) == strtoupper($outEncoding))
return $string;
else
return iconv($encoding$outEncoding$string);
}

  ?>


From:http://tw.wingwit.com/Article/program/PHP/201311/21076.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.