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中的一个中文字符串截取函数
Feb 14 PHP
简单介绍下 PHP5 中引入的 MYSQLI的用途
Mar 19 PHP
PHP中利用substr_replace将指定两位置之间的字符替换为*号
Jan 27 PHP
php设计模式 Command(命令模式)
Jun 26 PHP
在WAMP环境下搭建ZendDebugger php调试工具的方法
Jul 18 PHP
PHP 常用数组内部函数(Array Functions)介绍
Jun 05 PHP
php实现加减法验证码代码
Feb 14 PHP
PHP中strlen()和mb_strlen()的区别浅析
Jun 19 PHP
php简单分页类实现方法
Feb 26 PHP
PHP中的使用curl发送请求(GET请求和POST请求)
Feb 08 PHP
php文件上传及下载附带显示文件及目录功能
Apr 27 PHP
php基于协程实现异步的方法分析
Jul 17 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
德生PL990的分析评价
2021/03/02 无线电
PHP 日期加减的类,很不错
2009/10/10 PHP
php实现session自定义会话处理器的方法
2015/01/27 PHP
百度工程师讲PHP函数的实现原理及性能分析(三)
2015/05/13 PHP
Zend Framework动作助手Redirector用法实例详解
2016/03/05 PHP
浅谈php常用的7大框架的优缺点
2020/07/20 PHP
jQuery中:lt选择器用法实例
2014/12/29 Javascript
javascript原始值和对象引用实例分析
2015/04/25 Javascript
详解JavaScript中的表单验证
2015/06/16 Javascript
AngularJS Module方法详解
2015/12/08 Javascript
React.js入门实例教程之创建hello world 的5种方式
2016/05/11 Javascript
JavaScript实现大图轮播效果
2017/01/11 Javascript
微信小程序五星评分效果实现代码
2017/04/06 Javascript
AngularJS折叠菜单实现方法示例
2017/05/18 Javascript
微信小程序基于本地缓存实现点赞功能的方法
2017/12/18 Javascript
详解小程序横屏方案对比
2020/06/28 Javascript
详解Java中String JSONObject JSONArray List转换
2020/11/13 Javascript
Vue中computed和watch有哪些区别
2020/12/19 Vue.js
[00:17]DOTA2荣耀之路5:It’s a disastah!
2018/05/28 DOTA
python使用三角迭代计算圆周率PI的方法
2015/03/20 Python
Python字符编码与函数的基本使用方法
2017/09/30 Python
python sys,os,time模块的使用(包括时间格式的各种转换)
2018/04/27 Python
python实现自动登录后台管理系统
2018/10/18 Python
python 顺时针打印矩阵的超简洁代码
2018/11/14 Python
基于Python2、Python3中reload()的不同用法介绍
2019/08/12 Python
python 并发编程 非阻塞IO模型原理解析
2019/08/20 Python
HTML5实现获取地理位置信息并定位功能
2015/04/25 HTML / CSS
Expedia瑞典官网:预订度假屋、酒店、汽车租赁、机票等
2021/01/23 全球购物
职业生涯规划书的格式
2013/12/29 职场文书
餐饮加盟计划书
2014/01/10 职场文书
和谐家庭演讲稿
2014/05/24 职场文书
教师政风行风自查自纠报告
2014/10/21 职场文书
教师党员承诺书2015
2015/01/21 职场文书
女性健康知识讲座主持词
2015/07/04 职场文书
靠谱的活动总结
2019/04/16 职场文书
python中如何对多变量连续赋值
2021/06/03 Python