# GD輸出漢字的函數的分析（函數代碼系轉帖）

function u2utf8(\$c)
{
for(\$i=0;\$i<count(\$c);\$i++)
\$str="";
if (\$c < 0x80) {
\$str.=\$c;
}
else if (\$c < 0x800) {
\$str.=(0xC0 | \$c>>6);
\$str.=(0x80 | \$c & 0x3F);
}
else if (\$c < 0x10000) {
\$str.=(0xE0 | \$c>>12);
\$str.=(0x80 | \$c>>6 & 0x3F);
\$str.=(0x80 | \$c & 0x3F);
}
else if (\$c < 0x200000) {
\$str.=(0xF0 | \$c>>18);
\$str.=(0x80 | \$c>>12 & 0x3F);
\$str.=(0x80 | \$c>>6 & 0x3F);
\$str.=(0x80 | \$c & 0x3F);
}
return \$str;
}

function gb2utf8(\$gb)     /* Program writen by sadly www.phpx.com  */
{
if(!trim(\$gb))
return \$gb;
\$filename="gb2312.txt";
\$tmp=file(\$filename);
\$codetable=array();
while(list(\$key,\$value)=each(\$tmp))
\$codetable[hexdec(substr(\$value,0,6))]=substr(\$value,7,6);
\$utf8="";
while(\$gb)
{
if (ord(substr(\$gb,0,1))>127)
{
\$this=substr(\$gb,0,2);
\$gb=substr(\$gb,2,strlen(\$gb));
\$utf8.=u2utf8(hexdec(\$codetable[hexdec(bin2hex(\$this))-0x8080]));
}
else
{
\$gb=substr(\$gb,1,strlen(\$gb));
\$utf8.=u2utf8(substr(\$gb,0,1));
}
}

\$ret="";
for(\$i=0;\$i<strlen(\$utf8);\$i+=3)
\$ret.=chr(substr(\$utf8,\$i,3));

return \$ret;
}

function gb2utf8(\$gb)    /* Program writen by sadly   modified by agun */
{
if(!trim(\$gb))
return \$gb;
\$filename="gb2312.txt";
\$tmp=file(\$filename);
\$codetable=array();
while(list(\$key,\$value)=each(\$tmp))
\$codetable[hexdec(substr(\$value,0,6))]=substr(\$value,7,6);

\$ret="";
\$utf8="";
while(\$gb)
{
if (ord(substr(\$gb,0,1))>127)
{
\$this=substr(\$gb,0,2);
\$gb=substr(\$gb,2,strlen(\$gb));
\$utf8=u2utf8(hexdec(\$codetable[hexdec(bin2hex(\$this))-0x8080]));
for(\$i=0;\$i<strlen(\$utf8);\$i+=3)
\$ret.=chr(substr(\$utf8,\$i,3));
}
else
{
\$ret.=substr(\$gb,0,1);
\$gb=substr(\$gb,1,strlen(\$gb));
}
}
return \$ret;
}

## Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

## Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

## Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth \$300-1200 USD