加入收藏 | 设为首页 | 会员中心 | 我要投稿 南平站长网 (https://www.0599zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP的imagettftext中文乱码处理方法

发布时间:2022-02-24 14:11:56 所属栏目: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);
  ?>
 

(编辑:南平站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读