ホームページ > バックエンド開発 > PHPチュートリアル > Unicode エンコード変換では、PHP を使用して GB エンコードを UTF8 に変換します。

Unicode エンコード変換では、PHP を使用して GB エンコードを UTF8 に変換します。

WBOY
リリース: 2016-07-29 08:35:14
オリジナル
1153 人が閲覧しました

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$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; )
{
for($i=0 ;$i$str="";
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();

$obj->gb="123abc中国456def テストは正しい";
$obj->Convert();
ImageTTFText($im, 20, 0, 5, 50, $white, "SIMKAI.TTF", $obj->utf8);​

上記は、Unicode エンコード変換の内容を含め、PHP を使用して GB エンコードを UTF8 に変換する方法を紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

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