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 相关文章推荐
人尽可用的Windows技巧小贴士之下篇
Mar 22 PHP
php 数组排序 array_multisort与uasort的区别
Mar 24 PHP
PHP 年龄计算函数(精确到天)
Jun 07 PHP
php获取本地图片文件并生成xml文件输出具体思路
Apr 27 PHP
ThinkPHP3.1基础知识快速入门
Jun 19 PHP
CI框架装载器Loader.php源码分析
Nov 04 PHP
phalcon框架使用指南
Feb 23 PHP
PHP调用存储过程返回值不一致问题的解决方法分析
Apr 26 PHP
PHP守护进程化在C和PHP环境下的实现
Nov 21 PHP
Laravel用户授权系统的使用方法示例
Sep 16 PHP
Yii框架引入coreseek分页功能示例
Feb 08 PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
May 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
几种显示数据的方法的比较
2006/10/09 PHP
php2html php生成静态页函数
2008/12/08 PHP
PHP 网页过期时间的控制代码
2009/06/29 PHP
PHP获取MAC地址的具体实例
2013/12/13 PHP
PHP中is_file不能替代file_exists的理由
2014/03/04 PHP
PHP 微信支付类 demo
2015/11/30 PHP
PHP多维数组转一维数组的简单实现方法
2015/12/23 PHP
Laravel实现定时任务的示例代码
2017/08/10 PHP
使用laravel和ECharts实现折线图效果的例子
2019/10/09 PHP
一些常用的Javascript函数
2006/12/22 Javascript
addEventListener 的用法示例介绍
2014/05/07 Javascript
javascript函数式编程实例分析
2015/04/25 Javascript
JavaScript组件开发完整示例
2015/12/15 Javascript
浅析AngularJs HTTP响应拦截器
2015/12/28 Javascript
jQuery基于$.ajax设置移动端click超时处理方法
2016/05/14 Javascript
浅谈angular.js跨域post解决方案
2017/08/30 Javascript
原生JS+CSS实现炫酷重力模拟弹跳系统的登录页面
2017/11/01 Javascript
vue-video-player 断点续播的实现
2021/02/01 Vue.js
详解TensorFlow在windows上安装与简单示例
2018/03/05 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
2018/05/16 Python
Python补齐字符串长度的实例
2018/11/15 Python
wxPython+Matplotlib绘制折线图表
2019/11/19 Python
pandas实现DataFrame显示最大行列,不省略显示实例
2019/12/26 Python
浅谈Python中文件夹和python package包的区别
2020/06/01 Python
收集的22款给力的HTML5和CSS3帮助工具
2012/09/14 HTML / CSS
html5 Canvas画图教程(6)—canvas里画曲线之arcTo方法
2013/01/09 HTML / CSS
Java如何支持I18N?
2016/10/31 面试题
新闻网站实习自我鉴定
2013/09/25 职场文书
学子宴答谢词
2014/01/25 职场文书
《小山羊和小灰兔》教学反思
2014/02/19 职场文书
乡镇办公室工作决心书
2014/03/11 职场文书
专家推荐信模板
2014/05/09 职场文书
4s店活动策划方案
2014/08/25 职场文书
考试没考好检讨书
2015/05/06 职场文书
为Centos安装指定版本的Docker
2022/04/01 Servers
前端使用svg图片改色实现示例
2022/07/23 HTML / CSS