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中的pathinfo模式和URL重写
Jan 06 PHP
PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
May 10 PHP
php实现XSS安全过滤的方法
Jul 29 PHP
浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)
Sep 22 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
Jun 20 PHP
php实现图片以base64显示的方法
Oct 13 PHP
php中__toString()方法用法示例
Dec 07 PHP
PHP水印类,支持添加图片、文字、填充颜色区域的实现
Feb 04 PHP
php获取微信共享收货地址的方法
Dec 21 PHP
php使用scandir()函数扫描指定目录下所有文件示例
Jun 08 PHP
php操作redis命令及代码实例大全
Nov 19 PHP
PHP引擎php.ini参数优化深入讲解
Mar 24 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
php中magic_quotes_gpc对unserialize的影响分析
2014/12/16 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
永不消失的title提示代码
2007/02/15 Javascript
javascript第一课
2007/02/27 Javascript
cocos2dx骨骼动画Armature源码剖析(三)
2015/09/08 Javascript
jQuery实现简单的点赞效果
2020/05/29 Javascript
实例讲解JavaScript中call、apply、bind方法的异同
2016/09/13 Javascript
jQuery实现获取元素索引值index的方法
2016/09/18 Javascript
javascript中json基础知识详解
2017/01/19 Javascript
BootStrap daterangepicker 双日历控件
2017/06/02 Javascript
js+html5实现侧滑页面效果
2017/07/15 Javascript
javascript填充默认头像方法
2018/02/22 Javascript
vue2 全局变量的设置方法
2018/03/09 Javascript
使用Angular CLI快速创建Angular项目的一些基本概念和写法小结
2018/04/22 Javascript
微信小程序scroll-view的滚动条设置实现
2020/03/02 Javascript
python批量生成本地ip地址的方法
2015/03/23 Python
Python自动化运维和部署项目工具Fabric使用实例
2016/09/18 Python
python将文本分每两行一组并保存到文件
2018/03/19 Python
Python数据持久化shelve模块用法分析
2018/06/29 Python
PyCharm专业最新版2019.1安装步骤(含激活码)
2019/10/09 Python
如何基于python测量代码运行时间
2019/12/25 Python
pytorch实现线性拟合方式
2020/01/15 Python
python使用numpy中的size()函数实例用法详解
2021/01/29 Python
工程建设实施方案
2014/03/14 职场文书
大学迎新晚会主持词
2014/03/24 职场文书
《蚕姑娘》教学反思
2014/04/15 职场文书
2014年毕业演讲稿范文
2014/05/13 职场文书
四风问题对照检查材料整改措施
2014/09/27 职场文书
晚会闭幕词
2015/01/28 职场文书
休学证明范本
2015/06/19 职场文书
2019求职信大礼包
2019/05/15 职场文书
Springboot如何使用logback实现多环境配置?
2021/06/16 Java/Android
Python中使用ipython的详细教程
2021/06/22 Python
python开发飞机大战游戏
2021/07/15 Python
GO语言字符串处理函数之处理Strings包
2022/04/14 Golang