VtigerCRM5.4.0数据导出导入csv乱码修复

导入数据文件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再引用这个的数组的值。
 
原理说明:
导入时的程序执行的是先用了\Smarty\templates\modules\Import\ImportBasic.tpl 然后再引入不同的tpl文件

<tr> <td class="leftFormBorder1" width="60%" valign="top">

{include file='modules/Import/Import_Step1.tpl'} //第1步 </td>

<td class="leftFormBorder1" width="40%" valign="top"> {include file='modules/Import/Import_Step2.tpl'} //第2步 </td> </tr>

<tr> <td class="leftFormBorder1" colspan="2" valign="top"> {include file='modules/Import/Import_Step3.tpl'} //第3步 </td> </tr>

<tr> <td align="right" colspan="2"> {include file='modules/Import/Import_Basic_Buttons.tpl'} </td> </tr>

再调用了modules/Import/Import_Step2.tpl 第34行代码如下:

<select name="file_encoding" id="file_encoding" class="small"> {foreach key=_FILE_ENCODING item=_FILE_ENCODING_LABEL from=$SUPPORTED_FILE_ENCODING} <option value="{$_FILE_ENCODING}">{$_FILE_ENCODING_LABEL|@getTranslatedString:$MODULE}</option> <!--这里是数据类型--> {/foreach}</select>

 

如果需要将一个Excel表格导入,要注意以下几个步骤:

另存为CSV文件后,必须的格式要如下(表列值必须是双引号),然后中间有逗号分隔。 "姓名","性别","电话","手机" "张三","男","84577487","13878902345" "李四","女","25878456","13978581278"

 

注意:如果用导出的客户资料csv文件为模版,用Excel来编辑客户资料用来导入,则必须要经过处理,

因为用Excel保存完csv文件之后,用UE打开后每列值是没有双引号的,如下:

姓名,性别,电话,手机 张三,男,84577487,13878902345 李四,女,25878456,13978581278

 

处理方法:

1、用UE打开,替换,为","

2、上传到linux系统,用vim编辑,在行首和行尾分别加入"

:%s/^/“/g (在每行行首添加")

:%s/$/"/g (在每行行尾添加")

 

然后就可以成功将中文导入了。

 

 

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

修改include/utils/export.php中的第208,232和240行

 echo iconv("UTF-8", "GBK", $header); //原来: echo $header;

 echo iconv("UTF-8", "gbk", $line); //原来: echo $line; } $log->debug("Exiting export method ..."); return true; }

header("Content-Disposition:attachment;filename={$_REQUEST['module']}.csv"); header("Content-Type:text/csv;charset=gbk"); //原来: header("Content-Type:text/csv;charset=UTF-8"); header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" ); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT" ); header("Cache-Control: post-check=0, pre-check=0", false );
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值