用gd网图片里写文字

gd的bug是毫无疑问的。 问题是怎么解决。

1:重新编译
查找了一下php.ini的设置没有发现相关选项,于是又一个问题来了,这个默认编码是在哪里设置的呢?还是史文大哥牛,发现了PHP 编译参数里面有一个“–enable-gd-jis-conv”的参数十分可疑,Google一下果然发现了很多乱码问题与这个编译参数有关……官方给出 的参数说明是“GD: Enable JIS-mapped Japanese font support.”,也就是让GD支持日文编码的字库(可恶,为什么没有支持中文编码字库的编译选项……PHP也国籍歧视么= =b),说白了开启了这个选项的话GD就会把TTF字库中大于127的部分(即不属于标准拉丁文字库的部分)按照日文JIS的顺序来映射,那么用来映射中 文字体的时候自然就变成乱码了。二话不说,去掉这个选项重新编译,问题解决。去掉这个选项之后,imagettftext()的默认编码就变成了UTF- 8,就可以正常显示中文了~

2:变换字符集(感觉还是有小bug,凑活着用吧)
$str = mb_convert_encoding($str, "SJIS", "UTF-8");

相关文章:

  • 2021-12-05
  • 2022-12-23
  • 2022-01-19
  • 2022-12-23
  • 2021-12-13
  • 2022-12-23
  • 2021-11-23
猜你喜欢
  • 2022-01-08
  • 2022-12-23
  • 2021-11-29
  • 2022-12-23
  • 2021-05-18
  • 2021-05-31
  • 2022-02-16
相关资源
相似解决方案