给图片添加文字水印时,中文显示乱码

alilanger 2010-11-24 03:30:22
$text = iconv("GB2312","UTF-8","元旦好:www.thinkphp.com");
$color = imagecolorallocate($img,120,20,9);
imagestring($img,4,100,0,$text,$color);
英文可以显示,中文显示乱码;
iconv()貌似没起什么作用,php支持这个函数;
使用imagettftext()函数,还是这样;
、、、、、、、、、、、、、、、、、
搞不懂、为什么
...全文
1615 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
alilanger 2010-11-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zhang6464 的回复:]

编码是utf8还改什么编码?
ps:或者我理解的程序页面编码不是文件的编码?
引用 3 楼 alilanger 的回复:
引用 1 楼 luciferstar 的回复:

其实,只要把程序另存为,编码改成utf-8,就不需要转码了。


我程序页面编码就是UTF-8的
[/Quote]

我程序页面编码是UTF-8的,不用转就对了,一切在作怪的是imagestring()这个函数,编码无论怎么转,中文都会显示乱码,所以最好还是用imagettftext()函数了。
alilanger 2010-11-25
  • 打赏
  • 举报
回复
楼上的都不行,奇怪了、、、
shootblue 2010-11-24
  • 打赏
  • 举报
回复
编码问题

iconv() 用这个转下编码
zhang6464 2010-11-24
  • 打赏
  • 举报
回复
恩,最后一句是imagedestroy()。。
[Quote=引用 13 楼 zhang6464 的回复:]
你把simhei.ttf移到跟php文件相同的目录下,用下面的代码测,我这里运行是没问题的

PHP code
$im = imagecreatetruecolor(500,300);
$textcolor = imagecolorallocate($im,255,255,255);
$str=iconv('GB2312','UTF-8','中文水印');
ImageTTFText($……
[/Quote]
zhang6464 2010-11-24
  • 打赏
  • 举报
回复
你把simhei.ttf移到跟php文件相同的目录下,用下面的代码测,我这里运行是没问题的
$im = imagecreatetruecolor(500,300);
$textcolor = imagecolorallocate($im,255,255,255);
$str=iconv('GB2312','UTF-8','中文水印');
ImageTTFText($im,30,0,50,140,$textcolor,'SIMHEI.TTF',$str);
header("Content-type: image/png");
imagepng($im);
destroyimage($im);
alilanger 2010-11-24
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 zhang6464 的回复:]

你确定导入的字体文件时9楼说的那几个?有些是不支持gd库的
ps:我这里可以的,显示中文没问题
[/Quote]

对,字体文件都一样,跟9楼写的代码基本一样
zhang6464 2010-11-24
  • 打赏
  • 举报
回复
你确定导入的字体文件时9楼说的那几个?有些是不支持gd库的
ps:我这里可以的,显示中文没问题
alilanger 2010-11-24
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 jzh2004 的回复:]

我到网上查了好像要指定中文字体路径

$fontfile = "simkai.ttf";
/* $fontfile 字体的路径,视操作系统而定,可以是 simhei.ttf(黑体) , SIMKAI.TTF(楷体) , SIMFANG.TTF(仿宋) ,SIMSUN.TTC(宋体&新宋体) 等 GD 支持的中文字体*/

$str = iconv('GB2312','UTF……
[/Quote]

楼上的,谢了,不过我们写的代码一样,我也是那样写的,中文就是显示乱码了
沪php攻城师 2010-11-24
  • 打赏
  • 举报
回复
我到网上查了好像要指定中文字体路径

$fontfile = "simkai.ttf";
/* $fontfile 字体的路径,视操作系统而定,可以是 simhei.ttf(黑体) , SIMKAI.TTF(楷体) , SIMFANG.TTF(仿宋) ,SIMSUN.TTC(宋体&新宋体) 等 GD 支持的中文字体*/

$str = iconv('GB2312','UTF-8','php自学网'); /*将 gb2312 的字符集转换成 UTF-8 的字符*/

ImageTTFText($im, 30, 0, 100, 200, $pink , $fontfile , $str);
alilanger 2010-11-24
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jzh2004 的回复:]

PHP的加水印好像不支持中文字体,你把你要的中文文字先做成图片,然后添加图片水印好了
[/Quote]

支持,绝对支持,以前做过添加水印这东西,乖乖,这次不好用了
沪php攻城师 2010-11-24
  • 打赏
  • 举报
回复
PHP的加水印好像不支持中文字体,你把你要的中文文字先做成图片,然后添加图片水印好了
alilanger 2010-11-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zhang6464 的回复:]

编码是utf8还改什么编码?
ps:或者我理解的程序页面编码不是文件的编码?
引用 3 楼 alilanger 的回复:
引用 1 楼 luciferstar 的回复:

其实,只要把程序另存为,编码改成utf-8,就不需要转码了。


我程序页面编码就是UTF-8的
[/Quote]

不改也是乱的,改与不改,中文都显示乱码
zhang6464 2010-11-24
  • 打赏
  • 举报
回复
编码是utf8还改什么编码?
ps:或者我理解的程序页面编码不是文件的编码?
[Quote=引用 3 楼 alilanger 的回复:]
引用 1 楼 luciferstar 的回复:

其实,只要把程序另存为,编码改成utf-8,就不需要转码了。


我程序页面编码就是UTF-8的
[/Quote]
alilanger 2010-11-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 baiyuxiong 的回复:]

中文乱码要指定字体。
[/Quote]

我使用imagettftext()函数,指定字体,还是这样、、、、
上面我都写出来了、、
气死我了、、、
alilanger 2010-11-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 luciferstar 的回复:]

其实,只要把程序另存为,编码改成utf-8,就不需要转码了。
[/Quote]

我程序页面编码就是UTF-8的
codeyell-com 2010-11-24
  • 打赏
  • 举报
回复
中文乱码要指定字体。
LuciferStar 2010-11-24
  • 打赏
  • 举报
回复
其实,只要把程序另存为,编码改成utf-8,就不需要转码了。

21,886

社区成员

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

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