• 技术文章 >后端开发 >php教程

    php使用fgetcsv读取csv文件出现乱码的解决方法_PHP

    2016-05-31 19:28:09原创281
    本文实例讲述了php使用fgetcsv读取csv文件出现乱码的解决方法。分享给大家供大家参考。具体分析如下:

    一般来说在php中碰到乱码多半是编码问题,在这里我们实例分析了fgetcsv读取csv文件乱码原因所在与解决方法。

    例子如下:

    代码如下:

    function get_csv_contents( $file_target ){
    $handle = fopen( $file_target, 'r');
    while ($data = fgetcsv($handle, 1000, ",")) {

    $num = count($data);
    echo "

    $num fields in line $row:
    n";
    $row++;
    for ($c=0; $c < $num; $c++) {
    echo $data[$c]. "
    n";;
    /*echo getUTFString($data[$c])*/
    }
    }
    fclose($handle);
    }


    导入的csv文件是以ansi编码保存的,对于中文操作系统环境对应的应该就是gbk编码了,通过手动更改浏览器字符编码为gbk,乱码的情况消失了,于时进行了下面调整。

    代码如下:

    $data = eval('return '.iconv('gbk','utf-8',var_export($data,true)).';');


    $data为需要转换编码的数组。

    补充:LINUX FGETCSV读取GBK数据乱码

    当Linux系统是使用的默认设置,则在该Linux服务器上对gbk的csv格式文件进行处理的时候,就会出现乱码现象。

    解决方法是:

    使用 setlocale 函数设置环境变量。比如要设置使用gb 的区域设置可以在fgetcsv前使用下面的语句。

    代码如下:

    setlocale(LC_ALL,array('zh_CN.gbk','zh_CN.gb2312','zh_CN.gb18030'));


    具体使用哪些locale 可以使用linux 命令 locale -a 查看系统支持哪些

    希望本文所述对大家的PHP程序设计有所帮助。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:php json转换成数组形式代码分享_PHP 下一篇:PHP字符串word末字符实现大小写互换的方法_PHP
    Web大前端开发直播班

    相关文章推荐

    • php反序列化实例详解之字符串逃逸• 一文带你PHP利用phpmailer实现邮件发送功能• 什么是PHPUnit?在PHP项目中怎么使用?• 常用类解决方案• 织梦后台浏览缩略图有关问题

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网