gb2utf8.php 파일은 다음과 같습니다.
코드 복사 코드는 다음과 같습니다.
Class GB2UTF8
{
var $gb; // 변환할 GB2312 문자열
var $utf8; // 변환된 UTF8 문자열
var $CodeTable; 변환 프로세스
var $ErrorMsg; // 변환 중 오류 메시지
function GB2UTF8($InStr="")
{
$this->gb=$InStr; >SetGb2312();
($this->gb=="")?0:$this->Convert() ")
{ // gb2312 코드 파일을 설정합니다. 기본값은 gb2312.txt
$this->ErrorMsg="";
$tmp=@file($InStr)
if (! $tmp) {
$this->ErrorMsg=" 아니요 GB2312";
return false;
}
$this->CodeTable=array();
while(list( $key,$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; 🎜>while($str) {
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($InStr) >{
for($i=0;$i
if ($InStr < 0x80) {
$str .=ord($InStr);
}
else if ($InStr < 0x800) {
$str.=(0xC0 | $InStr> ;>6); (0x80 | $InStr & 0x3F)
}
else if ($InStr < 0x10000) {
$str.=(0xE0 | $ InStr>>12); =(0x80 | $InStr>>6 & 0x3F)
$str.=(0x80 | $InStr & 0x3F)
}
else if ($InStr < 0x200000) {
$str.=(0xF0 | $InStr>>18)
$str.=(0x80 | $InStr>>12 & 0x3F)
$str.=(0x80 | $InStr>> 6 & 0x3F);
$str.=(0x80 | $InStr & 0x3F)
}
return $str;
}
?
테스트 파일은 다음과 같습니다.
코드 복사
코드는 다음과 같습니다.
$im = imagecreate(400,300) $black = ImageColorAllocate($im, 0,0, 0); white = ImageColorAllocate($im, 184,44,6); include("gb2utf8.php") $obj=new gb2utf8() $obj- >gb="123abc 중국 456def 테스트가 정확함"; $obj->Convert();
ImageTTFText($im, 20, 0, 5, 50, $white, "SIMKAI.TTF", $ obj->utf8) ;
ImagePNG($im);
ImageDestroy($im);
참고:
글꼴 파일을 먼저 설정해야 합니다. 글꼴을 사용하여 영어를 직접 출력할 수 있는지 확인하십시오(gb2utf8을 사용하지 않고).
위 내용은 유니코드 인코딩 변환 내용을 포함하여 GB 인코딩을 UTF8로 변환하기 위해 PHP를 사용한 유니코드 인코딩 변환을 소개하고 있으니 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.