51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2971|回复: 1
打印 上一主题 下一主题

[原创] mantis1.0.3中统计报表乱码的解决方案尝试

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-6-2 10:44:53 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
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 );

中文乱码的话,估计用同样的方法可以解决。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2006-6-2 10:56:27 | 只看该作者
不好意思,第二步应该 是修改jpgraph.php文件
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-10-1 03:35 , Processed in 0.081029 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表