PHP的imagettftext中文乱码处理方法
发布时间:2022-02-24 13:47:05 所属栏目:PHP教程 来源:互联网
导读:分析: 1、确认gb库是否正确安装?没有报这个方法不存在。 2、imagettftext()必须utf-8编码,php的整个项目都是utf-8编码,所以不用太多考虑。如果不是,可以mb_convert_encoding()转换; 3、检查字体是否加载正确,写死了字体路径,而且换了多个字体(常
分析: 1、确认gb库是否正确安装?没有报这个方法不存在。 2、imagettftext()必须utf-8编码,php的整个项目都是utf-8编码,所以不用太多考虑。如果不是,可以mb_convert_encoding()转换; 3、检查字体是否加载正确,写死了字体路径,而且换了多个字体(常用的中文字体文件是simsun.ttc和simhei.ttf),还是不行,确认应该不是字体的问题。 然后看到网上有人说:请检查你在编译gd库时是否添加了–enable-gd-jis-conv选项,此选项是为了让gd库支持日文编码的字库,请取消此选项并重新编译。 然后我查看了我的php编译选项,是添加了这个参数,难道要重新编译? 正当我蛋疼的时候,又看到一篇文章: $str=mb_convert_encoding('汉字', "html-entities", "utf-8"); //转成html编码 例子,具体代码如下(文件格式为gb2312): <?php $im = imagecreatefromjpeg('./1.jpg'); $w = imagesx($im); $h = imagesy($im); $green = imagecolorallocate($im,50,100,200); $str = iconv('gb2312','utf-8','幸福就在身边');//解决乱码问题 imagettftext($im,16,0,200,100,$green,'./simhei.ttf',$str); header("content-type: image/jpeg"); imagejpeg($im); imagedestroy($im); ?> 例子2: 转码方法不复杂,不要紧张。将“我爱你”这几个字粘贴在记事本中,然后另存为utf8格式的文本,也就是unicode utf-8格式,随便起一名字保存,就叫做test.txt吧。下一步:用一个16进制的文本编辑器打开test.txt,你会看到里面的文字格式形如:chr(0xE6)等等,复制这些格式的代码,然后看下面的函数,相信你已经看懂了。 <?php //在PHP的图形函数中输出“我爱你” $cur_count=chr(0xE6).chr(0x88).chr(0x91).chr(0xE7).chr(0x88).chr(0xB1).chr(0xE4).chr(0xBD).chr(0xA0).chr(0xEF).chr(0xBC).chr(0x81) ; Header("Content-type: image/gif"); $im = imagecreate(156,116); $black = ImageColorAllocate($im, 0,0,0); $blue = ImageColorAllocate($im, 0,0,255); $white = ImageColorAllocate($im, 255,255,255); $yellow = ImageColorAllocate($im, 255,255,0); ImageTTFText($im,20,0,4,40,$yellow,"simkai.ttf",$cur_count);//我这里选择的本地字体是楷体,必须选择系统字库中存在的字体才行 ImageGif($im); //Cuoxin.com ImageDestroy($im); ?> (编辑:开发网_开封站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |