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 相关文章推荐
PHP中路径问题的解决方案
Oct 09 PHP
用函数读出数据表内容放入二维数组
Oct 09 PHP
利用PHP和AJAX创建RSS聚合器的代码
Mar 13 PHP
php反弹shell实现代码
Apr 22 PHP
php网站地图生成类示例
Jan 13 PHP
php发送邮件的问题详解
Jun 22 PHP
PHP文件上传处理案例分析
Oct 15 PHP
PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function
Feb 05 PHP
PHP连接MYSQL数据库的3种常用方法
Feb 27 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
Jul 22 PHP
PHP使用栈解决约瑟夫环问题算法示例
Aug 27 PHP
PHP实现的多维数组去重操作示例
Jul 21 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
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
javascript语句中的CDATA标签的意义
2007/05/09 Javascript
文本框中,回车键触发事件的js代码[多浏览器兼容]
2010/06/07 Javascript
引用外部js乱码问题分析及解决方案
2013/04/12 Javascript
javascript阻止scroll事件多次执行的思路及实现
2013/11/08 Javascript
jQuery实现异步获取json数据的2种方式
2014/08/29 Javascript
轻松创建nodejs服务器(2):nodejs服务器的构成分析
2014/12/18 NodeJs
基于Echarts 3.19 制作常用的图形(非静态)
2016/05/19 Javascript
15个值得开发人员关注的jQuery开发技巧和心得总结【经典收藏】
2016/05/25 Javascript
javascript如何定义对象数组
2016/06/07 Javascript
在Vue项目中使用d3.js的实例代码
2018/05/01 Javascript
js纯前端实现腾讯cos文件上传功能的示例代码
2019/05/14 Javascript
vue本地打开build后生成的dist文件夹index.html问题
2019/09/04 Javascript
零基础写python爬虫之神器正则表达式
2014/11/06 Python
Python中使用hashlib模块处理算法的教程
2015/04/28 Python
Python的Django框架中TEMPLATES项的设置教程
2015/05/29 Python
python简单获取本机计算机名和IP地址的方法
2015/06/03 Python
Python的collections模块中namedtuple结构使用示例
2016/07/07 Python
Python对象类型及其运算方法(详解)
2017/07/05 Python
Python文件打开方式实例详解【a、a+、r+、w+区别】
2019/03/30 Python
Django之使用celery和NGINX生成静态页面实现性能优化
2019/10/08 Python
Jupyter notebook如何实现指定浏览器打开
2020/05/13 Python
锐步美国官方网站:Reebok美国
2018/01/10 全球购物
外语系毕业生自荐信范文
2013/12/16 职场文书
创业计划书六个要素
2013/12/26 职场文书
国际金融专业大学生职业生涯规划书
2013/12/28 职场文书
行政专员岗位职责
2014/01/02 职场文书
安全生产活动月方案
2014/03/09 职场文书
《第一次抱母亲》教学反思
2014/04/16 职场文书
团支部建设方案
2014/05/02 职场文书
个人自荐材料
2014/05/23 职场文书
党的群众路线领导班子整改方案
2014/09/27 职场文书
2015年五四青年节活动总结
2015/02/10 职场文书
Mac环境Nginx配置和访问本地静态资源的实现
2021/03/31 Servers
使用scrapy实现增量式爬取方式
2022/06/21 Python
JS前端监控采集用户行为的N种姿势
2022/07/23 Javascript