标签存档: csv

PHP函数 fgetcsv 中文问题

今天使用fgetcsv,打开上传的CSV文件后,发现文件列中包含中文的都为空。

解决方案:
// utf-8
setlocale(LC_ALL, ‘en_US.UTF-8′);
// 简体
setlocale(LC_ALL, ‘zh_CN’);

以下是常用的地区标识:
zh_CN GB2312
en_US.UTF-8 UTF-8
zh_TW BIG5
zh_HK BIG5-HKSCS
zh_TW.EUC-TW EUC-TW
zh_TW.UTF-8 UTF-8
zh_HK.UTF-8 UTF-8
zh_CN.GBK GBK

例子:

setlocale(LC_ALL, 'zh_CN.GBK');

$goods_csv=$_FILES['goods_info']['tmp_name']; //CSV编码为ANSI

$file = fopen($goods_csv,'r');

while ($data = fgetcsv($file)) {
    $goods_list[] = $data;
}

foreach($goods_list as $key=>$value){
    foreach($value as $k=>$v){
        //由于PHP文件编码是UTF-8,把GBK转码成UTF-8
        $goods_list[$key][$k] = mb_convert_encoding($v, "UTF-8", "GBK");
    }
}
print_r($goods_list);

fclose($file);
第 1 页,共 1 页1