我們提供了幾種編碼轉換如有UTF-8 轉GB編碼 GB轉UTF-8編碼 Unicode轉utf8 unicode url編碼轉gbk編碼函數 GB碼轉換成Big5碼 Big5碼轉換成GB碼 utf8轉Unicode等哦。
我們提供了幾種編碼轉換如有utf-8 轉gb編碼 gb轉utf-8編碼 unicode轉utf8 unicode url編碼轉gbk編碼函數 gb碼轉換成big5碼 big5碼轉換成gb碼 utf8轉unicode等哦。
*/
$uc2gbtable = $codetable = $big5_data = $gb_data = '';
$gbkunidic = null;//utf-8 轉gb編碼
function utf82gb($utfstr)
{
if(function_exists('iconv'))
{
return iconv('utf-8','gbk//ignore',$utfstr);
}
global $uc2gbtable;
$okstr = "";
if(trim($utfstr)=="")
{
return $utfstr;
}
if(empty($uc2gbtable))
{
$filename = dedeinc."/data/gb2312-utf8.dat";
$fp = fopen($filename,"r");
while($l = fgets($fp,15))
{
$uc2gbtable[hexdec(substr($l, 7, 6))] = hexdec(substr($l, 0, 6));
}
fclose($fp);
}
$okstr = "";
$ulen = strlen($utfstr);
for($i=0;$i<$ulen;$i++)
{
$c = $utfstr[$i];
$cb = decbin(ord($utfstr[$i]));
if(strlen($cb)==8)
{
$csize = strpos(decbin(ord($cb)),"0");
for($j=0;$j < $csize;$j++)
{
$i++; $c .= $utfstr[$i];
}
$c = utf82u($c);
if(isset($uc2gbtable[$c]))
{
$c = dechex($uc2gbtable[$c]+0x8080);
$okstr .= chr(hexdec($c[0].$c[1])).chr(hexdec($c[2].$c[3]));
}
else
{
$okstr .= "&#".$c.";";
}
}
else
{
$okstr .= $c;
}
}
$okstr = trim($okstr);
return $okstr;
}
1 2 3 4 5 6