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入门速成教程
Mar 19 PHP
关于使用coreseek并为其做分页的介绍
Jun 21 PHP
ThinkPHP CURD方法之where方法详解
Jun 18 PHP
php从memcache读取数据再批量写入mysql的方法
Dec 29 PHP
php简单实现多字节字符串翻转的方法
Mar 31 PHP
PHP自带方法验证邮箱是否存在
Feb 01 PHP
THINKPHP截取中文字符串函数实例代码
Mar 20 PHP
ThinkPHP框架表单验证操作方法
Jul 19 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
Jul 19 PHP
PHP下 Mongodb 连接远程数据库的实例代码
Aug 30 PHP
Thinkphp页面跳转设置跳转等待时间的操作
Oct 16 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
Nov 23 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
建立文件交换功能的脚本(二)
2006/10/09 PHP
一个改进的UBB类
2006/10/09 PHP
php flush类输出缓冲剖析
2008/10/19 PHP
php中将数组存到文件里的实现代码
2012/01/19 PHP
ThinkPHP3.0略缩图不能保存到子目录的解决方法
2012/09/30 PHP
destoon实现公司新闻详细页添加评论功能的方法
2014/07/15 PHP
javascript 建设银行登陆键盘
2008/06/10 Javascript
jquery 插件开发 extjs中的extend用法小结
2013/01/04 Javascript
js关闭当前页面(窗口)的几种方式总结
2013/03/05 Javascript
jquery垂直公告滚动实现代码
2013/12/08 Javascript
js整数字符串转换为金额类型数据(示例代码)
2013/12/26 Javascript
js中settimeout方法加参数
2014/02/28 Javascript
JavaScript模板引擎用法实例
2015/07/10 Javascript
创建自己的jquery表格插件
2015/11/25 Javascript
如何使用Bootstrap的modal组件自定义alert,confirm和modal对话框
2016/03/01 Javascript
全面解析Javascript无限添加QQ好友原理
2016/06/15 Javascript
jQuery多文件异步上传带进度条实例代码
2016/08/16 Javascript
JavaScript中关于for循环删除数组元素内容时出现的问题
2016/11/21 Javascript
JS轮播图实现简单代码
2021/02/19 Javascript
ES6基础之默认参数值
2019/02/21 Javascript
详解解决小程序中webview页面多层history返回问题
2019/08/20 Javascript
利用Python实现命令行版的火车票查看器
2016/08/05 Python
windows环境下tensorflow安装过程详解
2018/03/30 Python
Python不使用int()函数把字符串转换为数字的方法
2018/07/09 Python
Python3从零开始搭建一个语音对话机器人的实现
2019/08/23 Python
Intersport西班牙:在线体育商店
2019/11/06 全球购物
优质飞蝇钓和渔具:RiverBum
2020/05/10 全球购物
师范大学应届生求职信
2013/11/21 职场文书
优秀医生事迹材料
2014/02/12 职场文书
法制宣传月活动总结
2014/04/29 职场文书
团队口号大全
2014/06/06 职场文书
2014公司党员自我评价范文
2014/09/11 职场文书
2014年督导工作总结
2014/11/19 职场文书
新婚姻法离婚协议书范文
2014/11/30 职场文书
2015年师德师风承诺书
2015/01/22 职场文书
解决jupyter notebook图片显示模糊和保存清晰图片的操作
2021/04/24 Python