51Testing软件测试论坛

标题: mantis1.0.3中统计报表乱码的解决方案尝试 [打印本页]

作者: xfli51test    时间: 2006-6-2 10:44
标题: mantis1.0.3中统计报表乱码的解决方案尝试
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 );

中文乱码的话,估计用同样的方法可以解决。
作者: xfli51test    时间: 2006-6-2 10:56
不好意思,第二步应该 是修改jpgraph.php文件




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2