开发者社区> 问答> 正文

淘宝助手导出商品csv不能读取的问题

导出的csv格式代码不行

$file = fopen("./uploads/333.csv","r");
while(! feof($file))
{
   $data[] = fgetcsv($file);            

}
var_dump($data);
fclose($file);

浏览器输出中文也乱码,用文件打开csv发现字段并不以逗号隔开

展开
收起
落地花开啦 2016-06-16 14:46:51 2514 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    你的CSV文件是用Tab分隔开的(并不是空格),而CSV文件的分隔符是可以自定义的,这个没有问题。PHP的fgetcsv函数是支持自定义分隔符分割的,如果按照以下的示例代码,你就会发现页面可以正常输出的:

    $file = fopen('./333.csv', 'r');
    while(!feof($file)) {
        @$data[] = fgetcsv($file, 4096, '   ');
    }
    var_dump($data);
    fclose($file);

    你的CSV文件的编码是UTF-8格式的,用Sublime Text和Notepad打开均没有乱码现象。从乱码现象来看你应该是用MS OFFICE Excel打开的。MS家的东西对GBK的编码有着莫名的好感,所以默认UTF-8为乱码了。一个简单的解决办法是把CSV重命名成TXT格式(解决MS无法判断Tab制表分隔符),然后用记事本另存为ANSI格式(实际证明Unicode格式也成)拖到Excel打开就完美了。

    2019-07-17 19:40:53
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
大批量处理excel文件到ODPS中方案 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载