Vtigercrm 5.4 数据导入excel中文乱码

最近在改vtigercrm系统,财务有n多个表数据,因此导入导出功能成为了必须。但vtigercrm中导入功能对中文支持并不很好。上网查了好多,好多的解决方法都如下:

导入数据文件CSV中文乱码修正:

在Smarty/templates/ImportStep1.tpl中的第99行插入<option value=”GBK”>GBK</option>

<select name="format" class="small"> 
<!-- value must be a known format for mb_convert_encoding() --> 
<option value="GBK">GBK</option> // <<插入一行 
<option value="ISO-8859-1">ISO-8859-1</option> 
<option value="UTF-8">UTF-8</option> 
</select>
 
再修改modules/Import/resources/Utils.php中的第21行
 
 

static $supportedFileEncoding = array('UTF-8'=>'UTF-8','ISO-8859-1'=>'ISO-8859-1');

修改为:

static $supportedFileEncoding = array('UTF-8'=>'UTF-8','GBK'=>'GBK','ISO-8859-1'=>'ISO-8859-1');

添加了GBK的数组,smarty再引用这个的数组的值。
我不知道这个方法对你有没有用,反正对我是没用。

对于我来说这只解决了问题的一半。只是添加了gbk这个编码选项。但还是没有解决乱码问题。最后看代码发现问题出在fgetcsv()函数身上。fgetcsv()对中文字符的支持不好。要在调用这个函数前加上setlocale()函数转化一下。

// utf-8

setlocale(LC_ALL,'en_US.UTF-8');

// 简体

setlocale(LC_ALL,'zh_CN');

在/modules/Import/readers/CSVReader.php 中,在read()和getFirstRowData()函数中调用fgetcsv()函数钱都设置了一下简体,设置完之后就没有乱码了。

我不知道这个方法对你有没有用,但确实对我有用。如果有什么更好的方法也希望大家多多分享~


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值