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

 更新时间:2014年11月08日 12:38:36   投稿:shichen2014  
这篇文章主要介绍了php使用fgetcsv读取csv文件出现乱码的解决方法,实例分析了造成乱码的原因与对应的解决方法,并给出了Linux平台下的乱码解决方法,需要的朋友可以参考下

本文实例讲述了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 "<p> $num fields in line $row: <br>n";
  $row++;
  for ($c=0; $c < $num; $c++) {
   echo $data[$c]. "<br>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程序设计有所帮助。

相关文章

  • 使用Canal实现PHP应用程序与MySQL数据库的实时数据同步

    使用Canal实现PHP应用程序与MySQL数据库的实时数据同步

    Canal是阿里巴巴开源的一个数据同步工具,可实现MySQL数据库到其他数据源的实时同步,PHP应用程序中可轻松使用,提高系统的可靠性和实时性,提供了丰富的API和文档支持
    2023-04-04
  • php版微信小店API二次开发及使用示例

    php版微信小店API二次开发及使用示例

    这篇文章主要介绍了php版微信小店API二次开发及使用方法,结合实例形式分析了针对微信小店API的调用及使用方法,需要的朋友可以参考下
    2016-11-11
  • php启用zlib压缩文件的配置方法

    php启用zlib压缩文件的配置方法

    一般而言,页面文件开启gzip压缩以后,其体积可以减小60%~90%,对于文字类站点,可以节省下大量的带宽与用户等待时间
    2013-06-06
  • PHP/HTML混写的四种方式总结

    PHP/HTML混写的四种方式总结

    下面小编就为大家带来一篇PHP/HTML混写的四种方式总结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • php通过curl添加cookie伪造登陆抓取数据的方法

    php通过curl添加cookie伪造登陆抓取数据的方法

    这篇文章主要介绍了php通过curl添加cookie伪造登陆抓取数据的方法,涉及PHP基于curl操作cookie及页面抓取的相关技巧,需要的朋友可以参考下
    2016-04-04
  • 浅谈php的TS和NTS的区别

    浅谈php的TS和NTS的区别

    这篇文章主要介绍了php的TS和NTS的区别,文中介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • 彻底杜绝PHP的session cookie错误

    彻底杜绝PHP的session cookie错误

    本文讨论的是如何彻底杜绝warning: Cannot add header information - headers already sent in...... 这种令人莫明其妙的的错误。
    2009-08-08
  • 深入PHP FTP类的详解

    深入PHP FTP类的详解

    本篇文章是对PHP的FTP类进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • PHP实现的创建带logo图标二维码生成类详解

    PHP实现的创建带logo图标二维码生成类详解

    这篇文章主要介绍了PHP实现的创建带logo图标二维码生成类,结合实例形式分析了可生成带logo的二维码工具类PHPQRCode.class.php相关参数、功能与使用技巧,需要的朋友可以参考下
    2018-07-07
  • PHP基于curl模拟post提交json数据示例

    PHP基于curl模拟post提交json数据示例

    这篇文章主要介绍了PHP基于curl模拟post提交json数据操作,结合实例形式分析了php使用curl实现post方式提交json数据相关操作步骤与注意事项,代码简单实用,需要的朋友可以参考下
    2018-06-06

最新评论