Mantis中导出CVS格式文件乱码问题

2010-09-15  王嘉 

       项目快接近尾声了,今天打开电脑后,无意的也打开了这几个月中自己提交的BUG库,想回顾一下这么长时间以来自己的一点成果,顺便也总结一下自己的不足。就这么一点想法让我引出了一个意向不到的问题,简单介绍一下:
       我们现在用的缺陷管理工具是Mantis,是一个基于PHP技术的轻量级并且开源的缺陷管理工具,很适合中小型企业使用。可是今天我却发现在  Mantis中文环境下CSV和Excel导出会出现乱码问题 ,如果不是今天想要回顾一下,还没发现不了这个问题,查了下资料,解决如下:
1.解决CVS导出乱码:

找到Mantis根目录下csv_export.php,进行修改:
添加函数:
function expChangeCode($str)
{
        return  mb_convert_encoding($str,"CP936","UTF-8");
}

然后修改:
将echo $t_header 改成 echo expChangeCode($t_header);
将echo  $t_value 改成 echo expChangeCode($t_value);
将echo $t_function( $t_row[ $t_column ] )改成 echo expChangeCode($t_function( $t_row[ $t_column ] ));

    2.解决Excel导出乱码

找到Mantis根目录下core/excel_api.php,进行修改:
将$t_ret .= utf8_encode( $t_value );改成$t_ret .=  $t_value;

也就是将utf8_encode函数去掉,也可以这样改:
将$t_value = str_replace( ">", ">", $t_value );改为$t_ret = str_replace( ">", ">", $t_value );
然后将$t_ret .= utf8_encode( $t_value );这句删除或者注释掉。

在网上看了下,好像大多数的缺陷管理工具中都会或多或少的出现这种问题。

613°/6138 人阅读/0 条评论 发表评论

登录 后发表评论