php中gd为什么是乱码的,php gd库中文乱码怎么解决?
php gd庫(kù)中文亂碼怎么解決?,中文,亂碼,字符,選項(xiàng),字體
php gd庫(kù)中文亂碼怎么解決?
易采站長(zhǎng)站,站長(zhǎng)之家為您整理了php gd庫(kù)中文亂碼怎么解決?的相關(guān)內(nèi)容。
解決方法:1、網(wǎng)站整站使用UTF8編碼,如果已使用GB2312或GBK編碼,需進(jìn)行字符編碼轉(zhuǎn)換;2、將Apache配置文件中的默認(rèn)字符集修改為UTF8;3、gd庫(kù)中取消“enable-gd-jis-conv”選項(xiàng),并重新編譯。
php gd庫(kù)產(chǎn)生中文亂碼的原因
1、服務(wù)器編碼原因。在用GD庫(kù)輸出中文字符串時(shí),要使用imagettftext()函數(shù)。由于imagettftext函數(shù)字符串參數(shù)的默認(rèn)編碼是UTF8,如果服務(wù)器編碼不一致,而又沒有進(jìn)行相應(yīng)的字符編碼格式轉(zhuǎn)換,很容易出現(xiàn)使用gd庫(kù)輸出圖片時(shí)中文字符變成亂碼。
【相關(guān)教程推薦:《PHP教程》】
2、沒有選擇正確的TTF字體文件。使用gd庫(kù)時(shí)如果要輸出中文字符,需要選擇正確的TTF字體文件。
php gd庫(kù)中文亂碼解決方法
根據(jù)之前介紹的php gd庫(kù)產(chǎn)生中文亂碼的原理,解決php gd庫(kù)中文亂碼的方法其實(shí)很簡(jiǎn)單。
1、建議整站使用UTF8編碼,如果你已使用的是GB2312或GBK編碼,請(qǐng)使用iconv或自定義的gb2312與utf8轉(zhuǎn)換函數(shù)進(jìn)行字符編碼轉(zhuǎn)換。
2、如果你是剛進(jìn)行php環(huán)境搭建,建議將Apache配置文件中的默認(rèn)字符集修改為UTF8,即AddDefaultCharset UTF8。
3、如果上述方法還不行,請(qǐng)檢查你在編譯gd庫(kù)時(shí)是否添加了–enable-gd-jis-conv選項(xiàng),此選項(xiàng)是為了讓gd庫(kù)支持日文編碼的字庫(kù),請(qǐng)取消此選項(xiàng)并重新編譯。此方法我沒驗(yàn)證過,估計(jì)主要是針對(duì)Unix下安裝配置php環(huán)境。Windows環(huán)境一般不會(huì)出現(xiàn)這種情況,似乎默認(rèn) PHP配置文件是注釋掉的。
4、使用php gd庫(kù)產(chǎn)生中文亂碼的另一個(gè)原因是沒有選擇正確的TTF字體,你需要選擇支持中文的字體,常用的中文字體文件是simsun.ttc和simhei.ttf。
OK,只要按照上述方法,基本上使用php gd庫(kù)產(chǎn)生中文亂碼時(shí)都能夠解決。只要仔細(xì)排查其實(shí)gd庫(kù)的中文亂碼解決起來非常方便。以上就是關(guān)于對(duì)php gd庫(kù)中文亂碼怎么解決?的詳細(xì)介紹。歡迎大家對(duì)php gd庫(kù)中文亂碼怎么解決?內(nèi)容提出寶貴意見
總結(jié)
以上是生活随笔為你收集整理的php中gd为什么是乱码的,php gd库中文乱码怎么解决?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php查询MySQL结果转化为数组_PH
- 下一篇: php 前置匹配,浅析PHP正则表达式匹