搜索
查看: 2726|回复: 0

[安装使用(新手)] cshop后台批量上传CSV格式的商品数据包的出现乱码

[复制链接]

37

主题

40

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
11707
发表于 2016-11-2 18:11:30 | 显示全部楼层 |阅读模式
后台自带的批量导入CSV数据包功能给很多站长带来了很多方便,但是也有很多站长在使用批量上传商品的时候出现了乱码现象。字段完全和数据库中的对不上,可以说是Ecshop读CSV格式太弱了,那么该如何才能顺利的导入呢?

花了半天的功夫研究出使用file方法将每行作为一个记录读入数组$data中。就可以解决了。但是ECShop根据上传时选择的编码类型,如果不是UTF-8则会强制转换成UTF-8。但也只是支持中文GB2312编码,客户上传的数据包却是Unicode编码。还会有乱码现象还要在上传后让它自动转化为UTF-8格式就可以了。具体的步骤如下:

首先连接FTp软件找到在admin/目录下找到good_batch.php这段代码 如下:

/*将文件按行读入数组,逐行进行解析*/

$line_number=0;

$arr=array();

$goods_list=array();

$field_list=array_keys($_LANG[‘upload_goods’]);//字段列表

$data=file($_FILES[‘file’][‘tmp_name’]);

//转换编码

if(($_POST[‘charset’]!=’UTF8′)&&(strpos(strtolower(EC_CHARSET),’utf’)===0))

{

$line=ecs_iconv($_POST[‘charset’],’UTF8′,$line);

}


修改为以下代码:

/*将文件按行读入数组,逐行进行解析*/

$line_number=0;

$arr=array();

$goods_list=array();

$field_list=array_keys($_LANG[‘upload_goods’]);//字段列表

$reader=newSpreadsheet_Excel_Reader();

$reader->setOutputEncoding(‘utf-8′);

$reader->read($_FILES[‘file’][‘tmp_name’]);

$data=$reader->sheets[0][‘cells’];


因为原来程序代码中phpExcelReader包含两个文件,使用时需要将Excel/reader.phpinclude读入进来,否则当然数据会出现读不完整导致乱码等现象出现了,修改好了上传覆盖之前的文件然后再登陆网站后台更新下缓存就可以解决这个问题了。


%
心怀梦想
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

前身为模板家园。国内NO.1电商解决方案平台

五年来一直为电商系统做优质的服务而不断努力着!

Copyright © 2011-2016 cybn.Cn. Powered by Discuz!

返回顶部 返回列表