在php jpgraph安裝教程之驗證php環(huán)境是否支持jpgraph安裝方法的php教程中我提到了gd庫的驗證,對于jpgraph中文使用者來說使用 jpgraph時不產(chǎn)生中文亂碼是非常必要的,而gd庫作為jpgraph類庫運行在php安裝環(huán)境下的基礎(chǔ),保證使用gd庫時不出現(xiàn)中文亂碼是非常必要的,之前我在驗證gd庫對jpgraph類庫的支持時也出現(xiàn)使用gd函數(shù)imagettftext函數(shù)出現(xiàn)中文亂碼的情況,下面介紹下使用php gd庫出現(xiàn)中文亂碼的原因與解決方法。
php gd庫產(chǎn)生中文亂碼的原因
1、服務(wù)器編碼原因。由于imagettftext函數(shù)字符串參數(shù)的默認(rèn)編碼是UTF8,如果服務(wù)器編碼不一致,而又沒有進(jìn)行相應(yīng)的字符編碼格式轉(zhuǎn)換,很容易出現(xiàn)使用gd庫輸出圖片時中文字符變成亂碼。
2、沒有選擇正確的TTF字體文件。使用gd庫時如果要輸出中文字符,需要選擇正確的TTF字體文件。
php gd庫中文亂碼解決方法
根據(jù)之前介紹的php gd庫產(chǎn)生中文亂碼的原理,解決php gd庫中文亂碼的方法其實很簡單。
1、建議整站使用UTF8編碼,如果你已使用的是GB2312或GBK編碼,請使用iconv或自定義的gb2312與utf8轉(zhuǎn)換函數(shù)進(jìn)行字符編碼轉(zhuǎn)換。gb2312與utf8轉(zhuǎn)換函數(shù)請參考PHP Ajax傳值中文字符亂碼如何解決。
2、如果你是剛進(jìn)行php環(huán)境搭建,建議將Apache配置文件中的默認(rèn)字符集修改為UTF8,即AddDefaultCharset UTF8。
3、如果上述方法還不行,請檢查你在編譯gd庫時是否添加了–enable-gd-jis-conv選項,此選項是為了讓gd庫支持日文編碼的字庫,請取消此選項并重新編譯。此方法我沒驗證過,估計主要是針對Unix下安裝配置php環(huán)境。Windows環(huán)境一般不會出現(xiàn)這種情況,似乎默認(rèn) PHP配置文件是注釋掉的。
4、使用php gd庫產(chǎn)生中文亂碼的另一個原因是沒有選擇正確的TTF字體,你需要選擇支持中文的字體,常用的中文字體文件是simsun.ttc和simhei.ttf。
OK,只要按照上述方法,基本上使用php gd庫產(chǎn)生中文亂碼時都能夠解決。只要仔細(xì)排查其實gd庫的中文亂碼解決起來非常方便。
轉(zhuǎn)載自:PHP網(wǎng)站開發(fā)教程-leapsoul.cn
聯(lián)系客服