JPGraph 在處理中文字符時會強制轉為 UTF-8 編碼輸出,導致 Big5 或 GB2312 編碼環境下出現亂碼。核心解決思路是註釋掉相關轉碼邏輯,並指定支援中文的字體。
編輯 dotproject/lib/jpgraph/jpgraph/src/jpgraph.php,找到 Convert() 函數,將中文轉碼區塊(FF_SIMSUN、FF_CHINESE 分支)完整註釋掉,保留預設返回原文本邏輯。
function Convert($aTxt,$aFF) {
if( LANGUAGE_CYRILLIC ) { ... }
/* 註釋起始
elseif( $aFF === FF_SIMSUN ) { ... }
elseif( $aFF === FF_CHINESE ) { ... }
註釋結束 */
else
return $aTxt;
}
dotproject/modules/projects/gantt.php 與 dotproject/modules/tasks/gantt.phparialbd.ttf 替換為 simsun.ttc(新細明體)FF_ARIAL 替換為 FF_SIMSUN//if ( $locale_char_set=='utf-8' && function_exists("utf8_decode") ) { ... }完成上述修改後,重新整理頁面即可正常顯示中文甘特圖。