急求帮助,后天答辩

arlalei 2004-06-12 10:43:51
我用imagecreate()函数创建了一个图象,现在想用imagestring()函数在该图象上面显示一行文字,现在只能显示英文,如何在显示汉字的时候不是乱码?
...全文
128 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
seu31199113 2004-06-14
  • 打赏
  • 举报
回复
gb2utf8.inc 我壓根就找不到此檔案
xuzuning 2004-06-14
  • 打赏
  • 举报
回复
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;
}
?>
tt1226 2004-06-14
  • 打赏
  • 举报
回复
不错,用iconv函数转换一下,将其转换为UTF-8格式,然后通过ImageTTFText函数将其画出.
arlalei 2004-06-13
  • 打赏
  • 举报
回复
to: zigz
我试了你给的代码,
但是 执行时提示 gb2utf8("显示汉字")函数没定义!
为什么?
arlalei 2004-06-12
  • 打赏
  • 举报
回复
wo ding ,
怎么没人呀?
ccterran 2004-06-12
  • 打赏
  • 举报
回复
FAQ里也有哈

http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=97062
zigz 2004-06-12
  • 打赏
  • 举报
回复
也可参考这个帖子:

http://www.phpx.com/happy/showthread.php?s=3695bc5d99e9736b36dd0e516ff414c9&threadid=63213&perpage=15&pagenumber=1
zigz 2004-06-12
  • 打赏
  • 举报
回复
因为PHP的图像输出函数不支持GB2312编码的汉字,所以输出的汉字都变成了乱码,要想汉字显示不出现乱码,必须要将GB2312的编码转换成UTF8编码(UTF8编码也是一种编码规范,php中的字体支持UTF8编码的非ASCII字符输出)。

你需要在php文件中include一个叫gb2utf8.inc的文件,这个文件功能就是把GB2312转为utf8。

//....
include"gb2utf8.inc"
//包含进制转换文件

$str1=gb2utf8("显示汉字");
//转换显示中文

ImageTTFText(.........$str1);
//将文本输出到图像上

//.....
ccterran 2004-06-12
  • 打赏
  • 举报
回复
刚有人问过。你可以转换成utf-8格式。也可以用imagettftext
zairwolf 2004-06-12
  • 打赏
  • 举报
回复
編碼問題吧。妳的php服務器不支持中文?
arlalei 2004-06-12
  • 打赏
  • 举报
回复
?? 顶呀

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧