解决方法是,使用: setlocale 函数设置环境变量。比如要设置使用gb 的区域设置可以在fgetcsv前使用下面的语句。
setlocale(LC_ALL,array(\'zh_CN.gbk\',\'zh_CN.gb2312\',\'zh_CN.gb18030\'));
$fileCSV = \'products.csv\'; $fp = fopen($fileCSV, \'r\'); if($fp){ $i = 0; //在linux系统下,会出现乱码问题,加入以下一行代码,应该可以解决 setlocale(LC_ALL,array(\'zh_CN.gbk\',\'zh_CN.gb2312\',\'zh_CN.gb18030\')); while ($data = fgetcsv($fp)) { $i++; /* 第一行抬头不算*/ if($i == 1) continue; //进行转码 $data1 = iconv(\'GBK\',\'UTF-8\',$data[0]); //$data2 = .... //如果多个字段,依次罗列即可 }; } fclose($fp);