php gd庫中文亂碼的產生與解決方案詳解

來源:互聯網
上載者:User

  在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庫的中文亂碼解決起來非常方便。

  :PHP網站開發教程-leapsoul.cn著作權,轉載時請以連結形式註明原始出處及本聲明,謝謝。



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.