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中Cannot send session cache limiter 的问题的方法
Apr 27 PHP
PHP 递归效率分析
Nov 24 PHP
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
Dec 29 PHP
PHP 查找字符串常用函数介绍
Jun 07 PHP
工厂模式在Zend Framework中应用介绍
Jul 10 PHP
PHP中如何调用webservice的实例参考
Apr 25 PHP
使用PHP备份MYSQL数据的多种方法
Jan 15 PHP
ThinkPHP CURD方法之page方法详解
Jun 18 PHP
PHP可变函数学习小结
Nov 29 PHP
初识ThinkPHP控制器
Apr 07 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
Mar 26 PHP
php中加密解密DES类的简单使用方法示例
Mar 26 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 中英文语言转换类代码
2011/08/11 PHP
PHP大小写问题:函数名和类名不区分,变量名区分
2013/06/17 PHP
一个简单且很好用的php分页类
2013/10/26 PHP
深入理解PHP中的global
2014/08/19 PHP
CodeIgniter自定义控制器MY_Controller用法分析
2016/01/20 PHP
Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
2016/03/21 PHP
Laravel如何创建服务器提供者实例代码
2019/04/15 PHP
YUI Compressor压缩JavaScript原理及微优化
2013/01/07 Javascript
JavaScript实现页面实时显示当前时间的简单实例
2013/07/20 Javascript
js处理json以及字符串的比较等常用操作
2013/09/08 Javascript
Javascript call和apply区别及使用方法
2013/11/14 Javascript
利用js读取动态网站从服务器端返回的数据
2014/02/10 Javascript
jquery插件开发之实现jquery手风琴功能分享
2014/03/10 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
2014/10/10 Javascript
javascript动态设置样式style实例分析
2015/05/13 Javascript
谈谈JavaScript异步函数发展历程
2015/09/29 Javascript
获取jqGrid中选择的行的数据
2016/11/30 Javascript
Angularjs的$http异步删除数据详解及实例
2017/07/27 Javascript
VUE2.0+Element-UI+Echarts封装的组件实例
2018/03/02 Javascript
python计算N天之后日期的方法
2015/03/31 Python
在Python3中使用asyncio库进行快速数据抓取的教程
2015/04/02 Python
小议Python中自定义函数的可变参数的使用及注意点
2016/06/21 Python
详解TensorFlow在windows上安装与简单示例
2018/03/05 Python
对numpy中轴与维度的理解
2018/04/18 Python
Python读写及备份oracle数据库操作示例
2018/05/17 Python
Tensorflow进行多维矩阵的拆分与拼接实例
2020/02/07 Python
Python学习之路安装pycharm的教程详解
2020/06/17 Python
大学生最新职业生涯规划书范文
2014/01/12 职场文书
优秀小学生家长评语
2014/01/30 职场文书
机关作风整顿个人整改措施2014
2014/09/17 职场文书
法人授权委托书样本
2014/09/19 职场文书
房屋出售授权委托书
2014/10/12 职场文书
王兆力在市委党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
计划生育汇报材料
2014/12/26 职场文书
小学生节水倡议书
2015/04/29 职场文书
JavaScript 中for/of,for/in 的详细介绍
2021/11/17 Javascript