最近在用一个fgetcsv方法导入数据时,发现中文无法导入。csv文件是用excel直接另存为生成的,于是我把csv文件用editplus编辑器打开,发现文本的编码格式是ansi,在windows是其实也就是gbk了;而网站程序又是用的utf-8编码,综合从网上查找的资料来看,原因是编码问题导致了中文数据读不出来。网上有说setlocale函数来处理,经过实验,以下方法可以完美处理中文问题。
setlocale(LC_ALL,'zh_CN');
$handle = fopen($csvFile,"r");
while ($data = fgetcsv($handle, 1000, ",")) {
if(is_array($data)){
foreach($data as &$v){
$v=iconv('gbk','utf-8',$v);
}
}
$list[]=$data;
}
这样 $list变量就读出了每行的数据