急求帮助,后天答辩 wo ding , 怎么没人呀? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 編碼問題吧。妳的php服務器不支持中文? 刚有人问过。你可以转换成utf-8格式。也可以用imagettftext 因为PHP的图像输出函数不支持GB2312编码的汉字,所以输出的汉字都变成了乱码,要想汉字显示不出现乱码,必须要将GB2312的编码转换成UTF8编码(UTF8编码也是一种编码规范,php中的字体支持UTF8编码的非ASCII字符输出)。你需要在php文件中include一个叫gb2utf8.inc的文件,这个文件功能就是把GB2312转为utf8。//....include"gb2utf8.inc"//包含进制转换文件$str1=gb2utf8("显示汉字");//转换显示中文ImageTTFText(.........$str1);//将文本输出到图像上//..... 也可参考这个帖子:http://www.phpx.com/happy/showthread.php?s=3695bc5d99e9736b36dd0e516ff414c9&threadid=63213&perpage=15&pagenumber=1 FAQ里也有哈http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=97062 to: zigz我试了你给的代码,但是 执行时提示 gb2utf8("显示汉字")函数没定义!为什么? gb2utf8.inc 我壓根就找不到此檔案 1、连接php_iconv扩展库$str = iconv("GB2312","UTF-8",$str);2、使用gb2utf8.inc文件,注意该文件还需要一个gb2312.txt文件<? function gb2utf8($gb) { if(!trim($gb)) return $gb; $filename="gb2312.txt"; $tmp=file($filename); $codetable=array(); while(list($key,$value)=each($tmp)) $codetable[hexdec(substr($value,0,6))]=substr($value,7,6); $utf8=""; while($gb) { if(ord(substr($gb,0,1))>127) { $this=substr($gb,0,2); $gb=substr($gb,2,strlen($gb)-2); $utf8.=u2utf8(hexdec($codetable[hexdec(bin2hex($this))-0x8080])); }else { $this=substr($gb,0,1); $gb=substr($gb,1,strlen($gb)-1); $utf8.=u2utf8($this); } } /*$ret=""; for($i=0;$i<strlen($utf8);$i+=3) $ret.=chr(substr($utf8,$i,3)); return $ret;*/ return $utf8; } function u2utf8($c) { for($i=0;$i<count($c);$i++) $str=""; if ($c < 0x80) { $str.=$c; } else if ($c < 0x800) { $str.=chr(0xC0 | $c>>6); $str.=chr(0x80 | $c & 0x3F); } else if ($c < 0x10000) { $str.=chr(0xE0 | $c>>12); $str.=chr(0x80 | $c>>6 & 0x3F); $str.=chr(0x80 | $c & 0x3F); } else if ($c < 0x200000) { $str.=chr(0xF0 | $c>>18); $str.=chr(0x80 | $c>>12 & 0x3F); $str.=chr(0x80 | $c>>6 & 0x3F); $str.=chr(0x80 | $c & 0x3F); } return $str; } ?> 不错,用iconv函数转换一下,将其转换为UTF-8格式,然后通过ImageTTFText函数将其画出. 图片问题,很急! PHP中SQL语句中的字符串两端为什么要加单引号? PHP 站外提交,并返回提交结果,如何实现呢? php4.3 如果处理2003Excel文件 网页自动登录 pear 里的joinAdd()咋个用? php无限极分类的解决思路 上传问题 请教高手:怎么安装windows xp下的apache啊!我已经被他给整的不行了!必有重谢!! Linux下怎么配置 php连接orale,php.ini怎么配置? 怎样让一个td里前面的文字和textarea的最高平齐? 为什么$_GET得不到值??
include"gb2utf8.inc"
//包含进制转换文件$str1=gb2utf8("显示汉字");
//转换显示中文ImageTTFText(.........$str1);
//将文本输出到图像上//.....
我试了你给的代码,
但是 执行时提示 gb2utf8("显示汉字")函数没定义!
为什么?
$str = iconv("GB2312","UTF-8",$str);2、使用gb2utf8.inc文件,注意该文件还需要一个gb2312.txt文件
<? function gb2utf8($gb) {
if(!trim($gb))
return $gb;
$filename="gb2312.txt";
$tmp=file($filename);
$codetable=array();
while(list($key,$value)=each($tmp))
$codetable[hexdec(substr($value,0,6))]=substr($value,7,6);
$utf8="";
while($gb) {
if(ord(substr($gb,0,1))>127) {
$this=substr($gb,0,2);
$gb=substr($gb,2,strlen($gb)-2);
$utf8.=u2utf8(hexdec($codetable[hexdec(bin2hex($this))-0x8080]));
}else {
$this=substr($gb,0,1);
$gb=substr($gb,1,strlen($gb)-1);
$utf8.=u2utf8($this);
}
} /*$ret="";
for($i=0;$i<strlen($utf8);$i+=3)
$ret.=chr(substr($utf8,$i,3)); return $ret;*/ return $utf8;
}
function u2utf8($c)
{
for($i=0;$i<count($c);$i++)
$str="";
if ($c < 0x80) {
$str.=$c;
}
else if ($c < 0x800) {
$str.=chr(0xC0 | $c>>6);
$str.=chr(0x80 | $c & 0x3F);
}
else if ($c < 0x10000) {
$str.=chr(0xE0 | $c>>12);
$str.=chr(0x80 | $c>>6 & 0x3F);
$str.=chr(0x80 | $c & 0x3F);
}
else if ($c < 0x200000) {
$str.=chr(0xF0 | $c>>18);
$str.=chr(0x80 | $c>>12 & 0x3F);
$str.=chr(0x80 | $c>>6 & 0x3F);
$str.=chr(0x80 | $c & 0x3F);
}
return $str;
}
?>