|
JPGRAPH中使用的是UTF-8,我们的系统使用的是EUC-JP.
为了能使日语正确显示,必须转换编码。
步骤:
1,php.ini文件中
;extension=php_mbstring.dll
把;去掉,即使extension=php_mbstring.dll 有效,然后重起apache服务。
2,修改jpgra.php文件。
文件开头追加:
DEFINE("TTF_DIR","C:/WINDOWS/Fonts/");
DEFINE("MBTTF_DIR","C:/WINDOWS/Fonts/");
DEFINE('MINCHO_TTF_FONT','msmincho.ttc');
function TTF() 中追加一行:
FF_MINCHO => array(FS_NORMAL=>MINCHO_TTF_FONT, FS_BOLD=>MINCHO_TTF_FONT, FS_ITALIC=>MINCHO_TTF_FONT, FS_BOLDITALIC=>MINCHO_TTF_FONT ),
3,修改graph_api.php文件。
function graph_get_font() 函数中直接返回日语字体。
即return FF_MINCHO;
在图形函数中找到$graph->title->Set,SetTickLabels,SetLegend等语句,进行修改。
例如:
在$graph->title->Set($p_title);前加上$p_title = mb_convert_encoding($p_title, "UTF-8", "EUC-JP");
把$tot->SetLegend( lang_get( 'legend_total' ) ); 改成$tot->SetLegend( mb_convert_encoding(lang_get( 'legend_total' ), "UTF-8", "EUC-JP") );
$graph->xaxis->SetTickLabels( array_keys( $p_metrics ) );改成以下处理,这个比较麻烦,如果有更好的方法,请大家指教:
$A=array_keys( $p_metrics );
for($i = 0; $i < sizeof($p_metrics); $i++){
$A[$i] = mb_convert_encoding($A[$i] , "UTF-8", "EUC-JP") ;
}
$graph->xaxis->SetTickLabels( $A );
中文乱码的话,估计用同样的方法可以解决。 |
|