oracle 导出csv 乱码问题,mantis导出cvs乱码问题和导出excel变更xml为xls格式问题

今天经理突然找我,问我mantis导出的bug记录为什么会是乱码,我糊涂了下,怎么会是乱码呢?我记得我之前尝试过导出,导出的不是乱码,但实际情况如此,解决才是正道,经过百度的帮助,我完成了乱码格式的变更,也算是今天笑笑的成就吧,另外还有个小成就就是今天我测试了overflow问题,也就是溢出问题,此处溢出不是内存溢出,而是int型溢出,所输入的数据超过了int相应的长度。

下面是我的解决过程:

1、mantis cvs乱码问题解决方案:

找到Mantis根目录下csv_export.php,进行修改:

添加函数:

function expChangeCode($str)

{

return  mb_convert_encoding($str,"CP936","UTF-8");

}

然后修改:

1、将echo $t_header 改成 echo expChangeCode($t_header);

2、将echo  $t_value 改成 echo expChangeCode($t_value);如找不到此句话找下面的这句话

将echo csv_escape_string($t_value); 修改成

echo expChangeCode(csv_escape_string($t_value));

3、将echo $t_function( $t_row[ $t_column ] )改成 echo expChangeCode($t_function( $t_row[ $t_column ] ));有的是 $t_row->$t_column,这个没有关系的,只要把词句放置到expChangeCode里就行

都改完毕后,试着导出一下cvs,你会发现,哈哈,我成功了。

2、mantis excel格式问题解决方案:

在mantisbt目录下,文件excel_xml_export.php中,我们看到如下一行:

header( 'Content-Disposition: attachment; filename="' . urlencode( file_clean_name( $t_export_title ) ) . '.xml"' ) ;

把 .xml 变更为 .xls ,如下:

header( 'Content-Disposition: attachment; filename="' . urlencode( file_clean_name( $t_export_title ) ) . '.xls"' ) ;

这样就解决了xml格式问题,其实mantisbt系统设置为xml是非常正确的,因为xml是标准的文件数据交换模式,避免的系统编码的差异,但是windows下,还是变成xls算了

3、附加 导出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 );这句删除或者注释掉。

在配置Mantis时,首先需要关注时区设置,这关系到所有日期和时间的正确显示。在`php.ini`文件中找到`date.timezone`并设置为适合服务器所在地区的时区,如`Asia/Shanghai`。用户也可在个人资料中调整时区,以适应个人偏好。 参考资源链接:[Mantis配置教程:时区、上传、jpgraph、语言与乱码解决](https://wenku.csdn.net/doc/107rrjwgqu?spm=1055.2569.3001.10343) 其次,为了启用文件上传功能,需要在Mantis的配置文件中找到相关的上传设置。将`$g_allow_file_upload`设置为`ON`以允许上传,`$g_file_upload_method`设置为`DISK`来指定存储方式,并确保`$g_absolute_path_default_upload_folder`指向正确的上传目录。 对于jpgraph的配置,Mantis需要启用图表库支持并指定其路径。设置`$g_mantistouch_url`为空,`$g_use_jpgraph`为`ON`,然后设置`$g_jpgraph_path`为jpgraph库的实际路径。 在语言设定方面,Mantis允许设置默认语言。通过修改`$g_default_language`变量为`'chinese_simplified'`,可以将Mantis界面切换到简体中文。 对于Apache服务器的配置,需要指定监听地址和端口,如`Listen **.*.*.*:80`。同时,在Apache的`httpd.conf`文件中配置Mantis的别名和目录访问规则,以确保Mantis能够通过指定的URL路径正确访问。 最后,解决CSV导出时可能出现的乱码问题,需要在`csv_export.php`文件中定义一个转换编码的函数`expChangeCode`,并将所有`echo`语句调整为使用这个函数处理数据,以避免导出数据时出现乱码。 《Mantis配置教程:时区、上传、jpgraph、语言与乱码解决》这本资源为Mantis的配置提供了全面的讲解,涵盖了上述问题的解决方案,并提供项目实战和常见问题的解决策略,非常适合进行系统配置时参考使用。 参考资源链接:[Mantis配置教程:时区、上传、jpgraph、语言与乱码解决](https://wenku.csdn.net/doc/107rrjwgqu?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值