Mantis中文环境下CSV和Excel导出乱码问题

Posted on Posted in 经验分享

在安装MySql和Mantis时,如果所有编码都采用UTF8,并且在登入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 );这句删除或者注释掉。