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


Posted in PHP onNovember 08, 2014

本文实例讲述了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程序设计有所帮助。

PHP 相关文章推荐
Zend的Registry机制的使用说明
May 02 PHP
PHP设计模式之调解者模式的深入解析
Jun 13 PHP
Symfony页面的基本创建实例详解
Jan 26 PHP
php的4种常见运行方式
Mar 20 PHP
PHP-FPM之Chroot执行环境详解
Aug 03 PHP
PHP处理会话函数大总结
Aug 05 PHP
摘自织梦CMS中的图片处理类
Aug 08 PHP
[原创]php正则删除img标签的方法示例
May 27 PHP
PHP实现将base64编码字符串转换成图片示例
Jun 22 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
Oct 12 PHP
PHP实现八皇后算法
May 06 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
Oct 10 PHP
php中file_get_contents与curl性能比较分析
Nov 08 #PHP
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2611816 bytes)
Nov 08 #PHP
PHP中使用循环实现的金字塔图形
Nov 08 #PHP
php调用新浪短链接API的方法
Nov 08 #PHP
php禁止浏览器使用缓存页面的方法
Nov 07 #PHP
php实现把url转换迅雷thunder资源下载地址的方法
Nov 07 #PHP
php采用file_get_contents代替使用curl实例
Nov 07 #PHP
You might like
实用函数10
2007/11/08 PHP
php获取用户浏览器版本的方法
2015/01/03 PHP
php+html5+ajax实现上传图片的方法
2016/05/14 PHP
php获取手机端的号码以及ip地址实例代码
2018/09/12 PHP
php菜单/评论数据递归分级算法的实现方法
2019/08/01 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
javascript Ext JS 状态默认存储时间
2009/02/15 Javascript
Js-$.extend扩展方法使方法参数更灵活
2013/01/15 Javascript
jquery easyui combobox模糊过滤(示例代码)
2013/11/30 Javascript
浅析Javascript中“==”与“===”的区别
2014/12/23 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
2015/11/19 Javascript
JavaScript学习总结之JS、AJAX应用
2016/01/29 Javascript
前端js文件合并的三种方式推荐
2016/05/19 Javascript
JavaScript结合Bootstrap仿微信后台多图文界面管理
2016/07/22 Javascript
基于vue.js轮播组件vue-awesome-swiper实现轮播图
2017/03/17 Javascript
浅谈vue2 单页面如何设置网页title
2017/11/08 Javascript
nodejs express配置自签名https服务器的方法
2018/05/22 NodeJs
在AngularJs中设置请求头信息(headers)的方法及不同方法的比较
2018/09/04 Javascript
对于防止按钮重复点击的尝试详解
2019/04/22 Javascript
更优雅的微信小程序骨架屏实现详解
2019/08/07 Javascript
vue实现pdf文档在线预览功能
2019/11/26 Javascript
详解Python 模拟实现生产者消费者模式的实例
2017/08/10 Python
1分钟快速生成用于网页内容提取的xslt
2018/02/23 Python
详解Python发送email的三种方式
2018/10/18 Python
pandas条件组合筛选和按范围筛选的示例代码
2019/08/26 Python
使用python代码进行身份证号校验的实现示例
2019/11/21 Python
Python命令行参数argv和argparse该如何使用
2021/02/08 Python
应届生求职信写作技巧
2013/10/24 职场文书
市场营销专业自荐书
2014/06/10 职场文书
治安消防安全责任书
2014/07/23 职场文书
安全生产月宣传标语
2014/10/06 职场文书
放弃遗产继承公证书
2015/01/26 职场文书
2015年综治宣传月活动总结
2015/03/25 职场文书
庆祝教师节主题班会
2015/08/17 职场文书
单身狗福利?Python爬取某婚恋网征婚数据
2021/06/03 Python
Golang 对es的操作实例
2022/04/20 Golang