zoukankan      html  css  js  c++  java
  • Linux中,fgetcsv取得的数组元素为空字符串的解决方法

    使用CSV导入数据的时候,我们通常用的是Windows系统,使用GBK在Windows的Excel中编辑.

    但服务器上,很多使用Linux服务器,源程序使用UTF-8,这样很容易产生字符编码的问题.

    如果仅仅将CSV文件转码为UTF-8,这样在Windows服务器上没有问题,

    而在RedHat5.5上,用fgetcsv取得的数组中,如果某列的内容是中文,则该列对应的数组元素为空字符串,而英文则正常.

    这时,需要设置区域: 

    setlocale(LC_ALL, 'zh_CN.UTF-8');
    代码如下

    // 上传的CSV文件,通常是用Excel编辑的GBK编码,
    // 而源代码是UTF-8,需要进行转码处理

    file_put_contents($new_fileiconv('GBK', 'UTF-8', file_get_contents($new_file)));

    //ini_set('auto_detect_line_endings', true);
    // 设置区域:简体中文,UTF-8编码

    setlocale(LC_ALL, 'zh_CN.UTF-8');
    // 打开CSV文件
    $handle = fopen($new_file, 'r');
    // 取出列头
    $data_heads = fgetcsv($handle);
  • 相关阅读:
    iSCSI又称为IPSAN
    文档类型定义DTD
    HDU 2971 Tower
    HDU 1588 Gauss Fibonacci
    URAL 1005 Stone Pile
    URAL 1003 Parity
    URAL 1002 Phone Numbers
    URAL 1007 Code Words
    HDU 3306 Another kind of Fibonacci
    FZU 1683 纪念SlingShot
  • 原文地址:https://www.cnblogs.com/heiing/p/2261351.html
Copyright © 2011-2022 走看看