fgetcsv()函数乱码解决

解决方法是,使用: 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);
原文地址:https://www.cnblogs.com/kennyhr/p/3457684.html