php出現gd2中文亂碼的原因:1、伺服器的編碼與gd2中的「imagettftext()」函數的預設編碼不同,函數預設編碼是UTF8;2、gd函式庫沒有選擇正確的TTF字體文件,gd2輸出中文字元時,必須選取正確的字型檔。
本教學操作環境:windows7系統、PHP7.1版,DELL G3電腦。
php gd2產生中文亂碼的原因
1、伺服器編碼原因。由於imagettftext函數字串參數的預設編碼是UTF8,如果伺服器編碼不一致,而又沒有進行對應的字元編碼格式轉換,很容易出現使用gd2輸出圖片時中文字元變成亂碼。
2、沒有選擇正確的TTF字體檔案。使用gd2時如果要輸出中文字符,則需要選擇正確的TTF字體檔案。
php gd2中文亂碼解決方法
根據先前介紹的php gd2產生中文亂碼的原理,解決php gd2中文亂碼的方法其實很簡單。
1、建議整站使用UTF8編碼,如果你已使用的是GB2312或GBK編碼,請使用iconv或自訂的gb2312與utf8轉換函數進行字元編碼轉換。 gb2312與utf8轉換函數請參考PHP Ajax傳值中文字元亂碼如何解決。
2、如果你是剛進行php環境搭建,建議將Apache設定檔中的預設字元集修改為UTF8,即AddDefaultCharset UTF8。
3、如果上述方法還不行,請檢查你在編譯gd2時是否添加了–enable-gd-jis-conv選項,此選項是為了讓gd2支援日文編碼的字庫,請取消此選項並重新編譯。此方法我沒驗證過,估計主要是針對Unix下安裝設定php環境。 Windows環境一般不會出現這種情況,似乎預設 PHP設定檔是註解掉的。
4、使用php gd函式庫產生中文亂碼的另一個原因是沒有選擇正確的TTF字體,你需要選擇支援中文的字體,常用的中文文字檔案是simsun.ttc和simhei.ttf。
OK,只要依照上述方法,基本上使用php gd2產生中文亂碼時都能夠解決。只要仔細查詢其實gd2的中文亂碼解決起來非常方便。
以上是php出現gd2中文亂碼的原因?的詳細內容。更多資訊請關注PHP中文網其他相關文章!