关于fgetcsv ,二进制csv文件得不得到中文字符

搞了很久,发现竟然是因为ms excel直接转csv文件会有问题,fgetcsv读取的csv文件是以逗号分隔,引号括起来,但是excel转的是不包含引号的

还有就是字符乱码问题,因为win 默认的是gb2312,而网站上用的都是utf-8所以会出现乱码问题,这个只要统一编码,转换下就行了


今天做项目的时候,需要个csv转json的小工具,想了下,用php完成,以下是代码:

<?php
	$fileAsArray = Array();

	if (($handle = fopen("test.csv", "r")) !== FALSE) {
		$header = fgetcsv($handle, 1000, ",");
		$row = Array();
		while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
			foreach($header as $key => $value) {
				$row[$value] = $data[$key];
			}
			$fileAsArray[] = $row;
		}
		fclose($handle);
	}

	var_dump($fileAsArray, json_encode($fileAsArray));

var_dump($fileAsArray, json_encode($fileAsArray));


可是我发现,以前的这篇日志,说引号会引起错误,今天发现没引号也是可以的,疑惑了。。。不晓得以前我是怎么做的。
然后看了下php手册
fgetcsv(file,length,separator,enclosure)
还有第四个参数表示 字段环绕符,手册上说默认是引号,可是现在看来,引号和空白都可以
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值