PHP的imagettftext方法中文乱码

AndyYang| 阅读:997 发表时间:2016-04-27 20:52:30 php
摘要:最近有个客户淘宝(扬和宏商城)上又买了一套,他反馈了一个bug,就是微信分销名片中昵称显示乱码,先win测试了下,是正常的,然后再服务器(Linux)上看了下,确实乱码。查看了下代码,发现是imagettftext()中将文字写到图片中乱码,而且仅仅是中文乱码,英文正常。
去年的时候开发了一套 微信三级分销系统 ,今年持续在运营,偶尔碰上客户买源码,于是就卖了。

最近有个客户淘宝(扬和宏商城)上又买了一套,他反馈了一个bug,就是微信分销名片中昵称显示乱码,先win测试了下,是正常的,然后再服务器(Linux)上看了下,确实乱码。查看了下代码,发现是imagettftext()中将文字写到图片中乱码,而且仅仅是中文乱码,英文正常。

分析:
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编码

抱着试试的态度,居然真的可以了。记下~

上天应该眷顾努力的家伙,是吧?

本文为AndyYang原创,转载请注明出处!
如果您觉得好,可以打赏作者:
如果您觉得累了,是否想眺望远方:猛戳>>若兰网

已有2条评论

昵称:
邮箱:

  • 最新评论

yoyo2017-08-30 12:16:36
解决了 谢谢
2017-08-30 13:39:40 (管理员回复)
不用客气~
yunying2017-05-05 15:50:26
222222222
若兰网 - www.rolan.wang
反馈
微信订阅号