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 相关文章推荐
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
Jun 26 PHP
PHP中大于2038年时间戳的问题处理方案
Mar 03 PHP
编写PHP脚本过滤用户上传的图片
Jul 03 PHP
PHP合并discuz用户脚本的方法
Aug 04 PHP
PHP使用SOAP扩展实现WebService的方法
Apr 01 PHP
php字符串的替换,分割和连接方法
May 23 PHP
php+jQuery+Ajax简单实现页面异步刷新
Aug 08 PHP
分享一个漂亮的php验证码类
Sep 29 PHP
PHP防止图片盗用(盗链)的方法小结
Nov 11 PHP
如何离线执行php任务
Feb 21 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
Nov 14 PHP
php生成微信红包数组的方法
Sep 05 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-cli简介(不会Shell语言一样用Shell)
2013/06/03 PHP
PHP is_subclass_of函数的一个BUG和解决方法
2014/06/01 PHP
PHP实现删除非站内外部链接实例代码
2014/06/17 PHP
javascript两段代码,两个小技巧
2010/02/04 Javascript
style、 currentStyle、 runtimeStyle区别分析
2010/08/01 Javascript
JavaScript高级程序设计(第3版)学习笔记3 js简单数据类型
2012/10/11 Javascript
jQuery之折叠面板的深入解析
2013/06/19 Javascript
jquery鼠标滑过提示title具体实现代码
2013/08/06 Javascript
JS实现网页标题栏显示当前时间和日期的完整代码
2015/11/02 Javascript
javascript学习指南之回调问题
2016/04/23 Javascript
JavaScript实现各种排序的代码详解
2017/08/28 Javascript
javascript删除数组元素的七个方法示例
2019/09/09 Javascript
Django框架中数据的连锁查询和限制返回数据的方法
2015/07/17 Python
Python使用Django实现博客系统完整版
2020/09/29 Python
Python利用matplotlib做图中图及次坐标轴的实例
2019/07/08 Python
Python连接字符串过程详解
2020/01/06 Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
2020/03/01 Python
美国从事品牌鞋类零售的连锁店:Famous Footwear
2016/08/25 全球购物
Speedo澳大利亚官网:全球领先游泳品牌
2018/02/04 全球购物
世界上最具创新性的增强型知名运动品牌:Proviz
2018/04/03 全球购物
美国在线工具商店:Acme Tools
2018/06/26 全球购物
周仰杰(JIMMY CHOO)英国官方网站:闻名世界的鞋子品牌
2018/10/28 全球购物
北京某公司的.net笔试题
2014/03/20 面试题
师范生实习个人的自我评价
2013/09/28 职场文书
公司培训欢迎词
2014/01/10 职场文书
工作态度检讨书
2014/02/11 职场文书
终止劳动合同协议书
2014/04/14 职场文书
委托协议书范本
2014/04/22 职场文书
奉献爱心演讲稿
2014/09/04 职场文书
五年级学生评语大全
2014/12/26 职场文书
办公室岗位职责
2015/02/04 职场文书
开学典礼观后感
2015/06/15 职场文书
在前女友婚礼上,用Python破解了现场的WIFI还把名称改成了
2021/05/28 Python
解决Jenkins集成SonarQube遇到的报错问题
2021/07/15 Java/Android
SONY AN-LP1 短波有源天线放大器图
2022/04/05 无线电
Mysql数据库group by原理详解
2022/07/07 MySQL