fgetcsv()函数乱码解决

时间:2024-03-07 15:58:50

解决方法是,使用: 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);