编程学习网 > PHP技术 > php-GD库网页中文乱码的原因以及解决方法
2021
10-30

php-GD库网页中文乱码的原因以及解决方法

据最新统计,目前有78.4%的网站使用php开发,其中包括Facebook、360.cn、维基百科、WordPress等知名网站,那当这些使用php网站开发的GD库出现中文乱码的时候,应该怎么处理呢?又是为什么会出现中文乱码呢?本文就大家详细了解一下。

一、原因

1.编码原因。在用GD库输出中文字符串时,要使用imagettftext()函数。但如果PHP编译时启用–enable-gd-jis-conv选项的话,那么非ASCII字符(例如汉字、拼音、希腊文和箭头) 会被当成EUC-JP编码 (phpinfo中美其名曰“支持JIS编码的字体”), 从而导致乱码(由于西文字体没有假名或汉字,一般表现为全部是方框)。

2.没有选择正确的TTF字体文件。使用gd库时如果要输出中文字符,需要选择正确的TTF字体文件。


二、解决方法

1.建议整站使用UTF8编码,如果你已使用的是GB2312或GBK编码,请使用iconv或自定义的gb2312与utf8转换函数进行字符编码转换。

2.如果你是刚进行php环境搭建,建议将Apache配置文件中的默认字符集修改为UTF8,即AddDefaultCharset UTF8。

3.如果上述方法还不行,请检查你在编译gd库时是否添加了“–enable-gd-jis-conv”选项,此选项是为了让gd库支持日文编码的字库,请取消此选项并重新编译。此方法本人已验证过,Linux系统下安装配置nginx+php环境,搭建Zabbix服务时碰到,添加了“–enable-gd-jis-conv”选项,Zabbix使用中文界面,更换字体文件前后,查看主机监控图标信息都会出现乱码。

4.使用php gd库产生中文乱码的另一个原因是没有选择正确的TTF字体,你需要选择支持中文的字体,常用的中文字体文件是simsun.ttc和simhei.ttf。

按照上述方法,基本上使用php gd库产生中文乱码时都能够解决。只要仔细排查其实gd库的中文乱码解决起来非常方便。想要了解更多关于php教程欢迎持续关注编程学习网

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取