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

WBOY
リリース: 2016-07-21 16:00:44
オリジナル
896 人が閲覧しました

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;//変換プロセス..
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート