Widgets

今天下午被 jpgraph 給打敗了,他處理中文時預設是 BIG5 而不是 UTF-8(都什麼年代了)。
嘗試用 google 找卻都是去年之前的解決方法,但是看起來 jpgraph 已經調整過一次他的程式架構了,前人的知識還是有些用處,所以一起整理起來分享一下。

1. jpg-config.inc.php

1.1 指定 DEFINE("TTF_DIR","C:/WINDOWS/FONTS/");
// 這是我在 windows 測試環境的 font 目錄,依照環境不同填入相對應的目錄


1.2 DEFINE('CHINESE_TTF_FONT','mingliu.ttc');
// 指定一個中文字形檔案給 jpgraph,mingliu.ttc 是個可以參考使用的。(請注意版權,在此僅供測試解說之用)


2. 在測試的 php 程式碼中使用

$graph->title->SetFont(FF_CHINESE, FS_NORMAL);
$graph->xaxis->SetFont(FF_CHINESE, FS_NORMAL);
// 中文只用 FS_NORMAL,若要用粗體等變化型,等下到 jpgraph_ttf.inc.php 改。


3. jpgraph_ttf.inc.php
因為 jpgraph 預設對中文用 BIG5 編碼,所以他在這裡頭有個 iconv 將 BIG5 轉到 UTF-8 再餵回來。所以找這個:

return iconv('BIG5','UTF-8',$aTxt);

我是把這個改成直接 return:

return $aTxt;

然後就可以正常顯示中文字元了。

其他中文相關的處理也都在這個檔案找關鍵字「FF_CHINESE」有出現的地方,例如粗體字。

0 Comments:

Post a Comment

 
Top