JpGraph的難題...UTF8和ANSI

edited 十月 2013 in 進階PHP討論
新版的JpGraph沒有中文顯示的困難.只要指定字型就可顯示中文了!

問題如下:

在設計JpGraph程式時,發現他只接受ANSI,不接受UFT8.
即使整個code都沒中文,只要是用UTF8格式儲存,就會出現錯誤.

但偏偏我打算讓圖表的數值是從DB動態產生的....
我的DB.table.資料全都是UTF8格式.
是無法在ANSI格式下將檔案撈出來!!
ex:
一模一樣的PHP程式,分別存成ANSI和UTF8格式.
ANSI格式的PHP是找不到任何資料的,UTF8則反.

這樣我要怎麼寫在一起=.=

假設現在編輯器格式是UTF8,現象如下:
程式上半部能成功讀取資料,下半部的JpGraph程式會失敗.


假設現在編輯器格式是ansi,現象如下:
程式上半部讀取失敗,下半部的JpGraph程式成功.

該怎辦呢..

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

評論

  • edited 三月 2007
    你將要查詢的資料值,以 hard code 形式寫在程式中時,自然如此。
    例如你在程式中寫:
    $query = "SELECT * FROM t1 WHERE name='台灣';";

    當你把程式碼存成 ansi 時,其中的'台灣'就是 big5 ,這表示程式會以 big5 的 '台灣' 查詢資料庫。但你的資料庫中存的是 utf-8 的 '台灣' ,自然不符合。

    試著把相關查詢資料,改寫成參數傳遞(外部輸入)、或寫在 include 檔案中。

    至於 JpGraph 的部份,我想問題不在程式碼是用什麼格式儲存的。
    你可以看看: 在 JpGraph 中顯示中文字
    這篇中說了,它內建的處理動作會將你輸入的資料都當作 ansi 再轉成 utf-8。
    如果你輸入的資料已經是 utf-8 了,它還是會去轉換,就轉成錯誤資料而無法顯示了。
  • edited 三月 2007
    我目前情況是這樣~不知道你們會不會有這樣情形!!
    http://blog.roodo.com/jaceju/archives/98190.html
    假設以上面這網址範例來說,是可以正常執行的!!
    但如果我在程式碼多這一行
    include ("jpgraph/space.php");
    space.php內容如下
    <?
    ?>
    
    也就是space.php事實上只是空白的,但檔案格式是UTF8,就會出現錯誤了...JpGraph版本是PHP4專用的1.20.5版.

    有看過您說的那文章了~但還是沒用說!


Sign In or Register to comment.