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 相关文章推荐
WinXP + Apache +PHP5 + MySQL + phpMyAdmin安装全功略
Jul 09 PHP
模拟xcopy的函数
Oct 09 PHP
用Socket发送电子邮件
Oct 09 PHP
hessian 在PHP中的使用介绍
Dec 13 PHP
php截取后台登陆密码的代码
May 05 PHP
整理的一些实用WordPress后台MySQL操作命令
Jan 07 PHP
使用php测试硬盘写入速度示例
Jan 27 PHP
兼容ie6浏览器的php下载文件代码分享
Jul 14 PHP
PHP超牛逼无限极分类生成树方法
May 11 PHP
PHP SPL标准库之SplFixedArray使用实例
May 12 PHP
详解PHP中的PDO类
Jul 06 PHP
swoole_process实现进程池的方法示例
Oct 29 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计算多维数组中所有值总和的方法
2015/06/24 PHP
js tab效果的实现代码
2009/12/26 Javascript
JQueryEasyUI Layout布局框架的使用
2013/04/08 Javascript
JavaScript实现基于十进制的四舍五入实例
2015/07/17 Javascript
javascript实现延时显示提示框特效代码
2016/04/27 Javascript
Javascript之String对象详解
2016/06/08 Javascript
原生js实现jquery函数animate()动画效果的简单实例
2016/08/21 Javascript
Webpack中css-loader和less-loader的使用教程
2017/04/27 Javascript
vue2.0中goods选购栏滚动算法的实现代码
2017/05/17 Javascript
解决JS内存泄露之js对象和dom对象互相引用问题
2017/06/25 Javascript
jQuery选取所有复选框被选中的值并用Ajax异步提交数据的实例
2017/08/04 jQuery
JavaScript自执行函数和jQuery扩展方法详解
2017/10/27 jQuery
微信小程序实现页面下拉刷新和上拉加载功能详解
2018/12/03 Javascript
JS实现将对象转化为数组的方法分析
2019/01/21 Javascript
对vue中的事件穿透与禁止穿透实例详解
2019/10/28 Javascript
element中的$confirm的使用
2020/04/26 Javascript
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
[56:29]Secret vs Optic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python实现堆栈与队列的方法
2015/01/15 Python
Python多线程编程(六):可重入锁RLock
2015/04/05 Python
菜鸟使用python实现正则检测密码合法性
2016/01/05 Python
Django admin美化插件suit使用示例
2017/12/12 Python
解决pandas无法在pycharm中使用plot()方法显示图像的问题
2018/05/24 Python
python通过配置文件共享全局变量的实例
2019/01/11 Python
使用Python控制摄像头拍照并发邮件
2019/04/23 Python
python SVD压缩图像的实现代码
2019/11/05 Python
python编写实现抽奖器
2020/09/10 Python
Canvas 文本转粒子效果的实现代码
2019/02/14 HTML / CSS
Hello Molly美国:女性时尚在线
2019/08/26 全球购物
雷朋巴西官方商店:Ray-Ban Brasil
2020/07/21 全球购物
仓库管理专业个人自我评价范文
2013/11/11 职场文书
主管会计岗位职责
2014/03/13 职场文书
表彰会主持词
2014/03/26 职场文书
干部考核评语
2014/04/29 职场文书
机关党员公开承诺书
2014/08/30 职场文书
MySQL复制问题的三个参数分析
2021/04/07 MySQL