gb2utf8.php ファイルは次のとおりです:
コードをコピーします コードは次のとおりです:
Class GB2UTF8
{
var $gb; // 変換される GB2312 文字列
var; $utf8; // 変換結果の UTF8 文字列
var $CodeTable; // 変換プロセス中に使用される GB2312 コード ファイルの配列
var $ErrorMsg // 変換プロセス中のエラー メッセージ
function GB2UTF8($InStr="")
{
$this ->gb=$InStr;
$this->gb=="")?0:$this->
}
function SetGb2312($ InStr="gb2312.txt")
{ // gb2312 コード ファイルを設定します。デフォルトは gb2312.txt です
$this->ErrorMsg="";
$tmp=@file($InStr);
if (!$tmp ) {
$this->ErrorMsg="No GB2312";
$this->CodeTable=array(); =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]));
for($i=0;$i
}
else
{
$tmp=substr($str,0,1); $str=substr($str,1, strlen($str));
$this->utf8.=$tmp;
}
return $this->utf8
}
関数 U2UTF8; )
{
for($i=0 ;$i
if ($InStr $str.=ord($InStr) ;
}
else if ($InStr < ; 0x800) {
$str.=(0xC0 | $InStr>>6);
$str.=(0x80 | $InStr & 0x3F); $InStr $str .=(0xE0 | $InStr>>12);
$str.=(0x80 | $InStr>>6 & 0x3F); InStr & 0x3F);
} else if ($InStr $str.=(0xF0 | $InStr>>18); );
$str.=(0x80 | $InStr>6 & 0x3F);
$strを返す
}
?>
テストファイルは次のとおりです:
コードをコピーします
コードは次のとおりです:
Header("Content-type: image/png");
$im = imagecreate (400,300);
$black = ImageColorAllocate($im, 0,0, 0);
include("gb2utf8.php"); new gb2utf8();
上記は、Unicode エンコード変換の内容を含め、PHP を使用して GB エンコードを UTF8 に変換する方法を紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。