php gd库中文乱码的产生与处理方法详解
在php jpgraph装置教程之验证php环境能否支持jpgraph装置方法的php教程中我提到了gd库的验证,对于jpgraph中文利用者来说利用jpgraph时不产生中文乱码是十分必要的,而gd库作为jpgraph类库运转在php装置环境下的根底,保证利用gd库时不出现中文乱码是十分必要的,之前我在验证gd库对jpgraph类库的支持时也出现利用gd函数imagettftext函数出现中文乱码的情况,下面引见下利用php gd库出现中文乱码的缘由与处理方法。
php gd库产生中文乱码的缘由
1、服务器编码缘由。因为imagettftext函数字符串参数的默许编码是UTF8,假设服务器编码不分歧,而又没有停止相应的字符编码格式转换,很容易出现利用gd库输出图片时中文字符变成乱码。
2、没有抉择正确的TTF字体文件。利用gd库时假设要输出中文字符,需求抉择正确的TTF字体文件。
php gd库中文乱码处理方法
依据之前引见的php gd库产生中文乱码的原理,处理php gd库中文乱码的方法其实很简略。
1、建议整站利用UTF8编码,假设你已利用的是GB2312或GBK编码,请利用iconv或自定义的gb2312与utf8转换函数停止字符编码转换。gb2312与utf8转换函数请参考PHP Ajax传值中文字符乱码如何处理。
2、假设你是刚停止php环境搭建,建议将Apache配置文件中的默许字符集修正为UTF8,即AddDefaultCharset UTF8。
3、假设上述方法还不行,请反省你在编译gd库时能否减少了–enable-gd-jis-conv选项,此选项是为了让gd库支持日文编码的字库,请取消此选项并重新编译。此方法我没验证过,预计次要是针对Unix下装置配置php环境。Windows环境普通不会出现这种情况,似乎默许PHP配置文件是注释掉的。
4、利用php gd库产生中文乱码的另一个缘由是没有抉择正确的TTF字体,你需求抉择支持中文的字体,常用的中文字体文件是simsun.ttc和simhei.ttf。
OK,只需依照上述方法,根本上利用php gd库产生中文乱码时都可以处理。只需细心排查其实gd库的中文乱码处理起来十分方便。