vtigercrm圖表出現亂碼

在首頁及統計圖表上會出現亂碼,自己查的結果,應該是jpgraph產生圖,但裏面的文字轉碼有問題,找了很久,不知道怎麼解?

網路上有人說要搭iconv轉,是這樣嗎?

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=844

評論

  • edited 九月 2005
    iconv或者mb_string都可以,這需要實際測試才知道,目前沒有這樣的需求,所以沒有真的改過;過去有分享過類似的情況,搜尋一下應該找的到,不過兩個所使用的JPGRAPH版本不一樣,理論上現在比較容易。
  • edited 十一月 2005
    其實網路上的作法一切都對了
    原因不在jpgraph身上...
    vtigercrm亂碼的原因在於....
    tigercrm\modules\Potentials\Charts.php
    裡面的這個function應該像這樣
    function calculate_font_family($locale)
    {
    switch($locale)
    {
    case 'cn_zh':
    return FF_SIMSUN;
    case 'zh_tw':
    return FF_CHINESE;
    default:
    return FF_FONT1;
    }

    return FF_FONT1;
    }

    在4.0版的時候,不知道誰居然寫成這樣
    case 'tw_zh';
    結果當然字型出不來阿~
    同理可證cn_zh...也是出不來啦
  • edited 十二月 2005
    感謝提示,我已經修正好了,步驟如下:

    1. 修改 vtigercrm/modules/Potentials/Charts.php

    找到:
    case 'tw_zh':
    			if(!function_exists('iconv')){
    				echo " Unable to display traditional Chinese
    on the graphs.<BR>The function iconv does not exists please read
    more about <a href='http://us4.php.net/iconv'>iconv
    here</a><BR>";
    				return FF_FONT1;
    
    			}
    			else return FF_CHINESE;
    

    修改為:
    case 'zh_tw':
    			return FF_CHINESE;
    
    (因為繁體中文介面預設就是使用utf-8編碼,因此不需要轉碼動作;這裡也修正 locale 的錯誤)

    2. 修改 vtigercrm/jpgraph/src/jpgraph.php

    找到:
    elseif( $aFF === FF_CHINESE ) {
    	    if( !function_exists('iconv') ) {
    		JpGraphError::Raise('Usage of FF_CHINESE (FF_BIG5)
    font family requires that your PHP setup has the iconv() function.
    By default this is not compiled into PHP (needs the "--width-iconv"
    when configured).');
    	    }
    	    return iconv('BIG5','UTF-8',$aTxt);
    

    修改為:
    elseif( $aFF === FF_CHINESE ) {
    	    return $aTxt;
    

    3. 下載字型:
    http://twpug.net/x/modules/wfdownloads/singlefile.php?cid=33&lid=566

    (新細明體在 utf-8 編碼中會有字體破碎的狀況,可能需要調整其他參數才能夠順利使用,而文鼎PL新宋字型不需調整就能使用。)

    4. 在 vtigercrm 目錄中新增一個資料夾,名為 font (可以自訂,不過跟接下來的設定有關)

    5. 將剛剛下載的字型解壓縮,從裡面找到 fireflysung.ttf 這個檔案,並且移到剛剛新增的 font 資料夾中。

    6. 修改 vtigercrm/jpgraph/src/jpg-config.inc

    在空白處新增一行,路徑指到放置字型的路徑,例如:
    DEFINE("TTF_DIR","D:/www/vtiger_crm4/font/");
    

    7. 在同一個檔案中找到
    DEFINE('CHINESE_TTF_FONT','bkai00mp.ttf');
    

    修改為:
    DEFINE('CHINESE_TTF_FONT','fireflysung.ttf');
    

    然後圖形的中文字就正常了。
  • edited 十二月 2005
    Kiang兄,

    我按照你提供的方式修改,試了兩次,可是還是出現一樣的亂碼圖,要怎麼查問題呢?
  • edited 十二月 2005
    polygon 寫道:
    Kiang兄,

    我按照你提供的方式修改,試了兩次,可是還是出現一樣的亂碼圖,要怎麼查問題呢?

    你的環境是?
  • edited 十二月 2005
    redhat 9
    apache 2.0.54
    mysql 4.1.13
    php 4.3.11
  • edited 十二月 2005
    你可以先試試我剛剛上傳的這個版本:
    http://twpug.net/x/modules/wfdownloads/singlefile.php?cid=36&lid=616

    最近搬家,所以沒辦法在 linux 主機上試
Sign In or Register to comment.