ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用して GB エンコーディングを UTF8_PHP に変換するチュートリアル

PHP を使用して GB エンコーディングを UTF8_PHP に変換するチュートリアル

WBOY
WBOYオリジナル
2016-07-21 16:00:44926ブラウズ

gb2utf8.php ファイルは次のとおりです:

コードをコピーします コードは次のとおりです:

Class GB2UTF8
{
var $gb;
var $utf 8; // 変換された UTF8 文字列
var $CodeTable; // 変換プロセス中に使用される GB2312 コード ファイルの配列
var $ErrorMsg; // 変換プロセス中のエラー メッセージ

function GB2UTF8($InStr=" ")
{
$this->gb=$InStr;
$this->SetGb2312();
($this->gb=="")?0:$this->Convert();
}

function SetGb2312($InStr="gb2312.txt")
{ // gb2312 コード ファイルを設定します。デフォルトは gb2312.txt です
$this->ErrorMsg="";
$tmp=@file( $InStr);
if (!$tmp) {
$this->ErrorMsg="No GB2312";
$this->CodeTable=array(); ,$value)=each ($tmp)) {
$this->CodeTable[hexdec(substr($value,0,6))]=substr($value,7,6);
}
}

function Convert()
{ // GB2312 文字列を UTF8 文字列に変換するには、事前に $gb を設定する必要があります
$this->utf8=""
if(!trim($this->gb) || $this->ErrorMsg!= "") {
return ($this->utf8=$this->ErrorMsg)
}
$str=$this->gb; {
if (ord(substr( $str,0,1))>127)
{
$tmp=substr($str,0,2);
$str=substr($str,2,strlen($) str));
$tmp= $this->U2UTF8(hexdec($this->CodeTable[hexdec(bin2hex($tmp))-0x8080])); ($tmp);$i+= 3)
$this->utf8.=chr(substr($tmp,$i,3))
}
else
{
$tmp=substr($str,0, 1);
$str=substr ($str,1,strlen($str));
$this->utf8.=$tmp;
}
return $this->utf8;関数 U2UTF8($InStr)
{
for($i=0;$i$str="";
if ($InStr < 0x80) {
$str.= ord($InStr);
else if ($InStr < 0x800) {
$str.=(0xC0 | $InStr>6);
else if ($InStr < ; 0x10000) {
$str.=(0xE0 | $InStr>>12);
$str.=(0x80 | $InStr>>6 & 0x3F); =(0x80 | $InStr & 0x3F );
} else if ($InStr $str.=(0xF0 | $InStr>>18); >12 & 0x3F); $str.=(0x80 | $InStr>6 & 0x3F);
$str; を返します。 ?>


テスト ファイルは次のとおりです:



コードをコピーします

コードは次のとおりです:


Header("Content-type: image/png"); $im = imagecreate(400,300);
$black = ImageColorAllocate($im, 0,0,0);
$white = ImageColorAllocate($im, 184,44,6);
$obj=new gb2utf8();
$obj-> ;gb="123abc China 456def テストは正しいです";
$obj->Convert(); $white, "SIMKAI.TTF", $obj->utf8 );
ImageDestroy($im);
注意:
フォントファイルを正しく設定する必要があります。まず、(gb2utf8 を使用せずに) フォントを使用して英語を直接出力できることを確認してください。​

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/317042.html技術記事 gb2utf8.php ファイルは次のとおりです。 次のようにコードをコピーします。 ?php ClassGB2UTF8 { var$gb;//変換される GB2312 文字列 var$utf8;//変換された UTF8 文字列 var$CodeTable;//変換プロセス..
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。