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 图像尺寸调整代码
May 26 PHP
PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
Jul 01 PHP
PHP版网站缓存加快打开速度的方法分享
Jun 03 PHP
PHP系统命令函数使用分析
Jul 05 PHP
PHP图片裁剪函数(保持图像不变形)
May 04 PHP
yii实现CheckBox复选框在同一行显示的方法
Dec 03 PHP
php实现每天自动变换随机问候语的方法
May 12 PHP
ThinkPHP里用U方法调用js文件实例
Jun 18 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
Mar 21 PHP
php登录超时检测功能实例详解
Mar 21 PHP
PHP绕过open_basedir限制操作文件的方法
Jun 10 PHP
redis+php实现微博(一)注册与登录功能详解
Sep 23 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 将图片按创建时间进行分类存储的实现代码
2010/01/05 PHP
PHP 开发环境配置(Zend Studio)
2010/04/28 PHP
使用swoole扩展php websocket示例
2014/02/13 PHP
使用ThinkPHP+Uploadify实现图片上传功能
2014/06/26 PHP
举例详解PHP脚本的测试方法
2015/08/05 PHP
PHP 根据key 给二维数组分组
2016/12/09 PHP
php 数据结构之链表队列
2017/10/17 PHP
破解Session cookie的方法
2006/07/28 Javascript
Prototype源码浅析 Enumerable部分之each方法
2012/01/16 Javascript
jquery 设置style:display的方法
2015/01/29 Javascript
JavaScript实现定时隐藏与显示图片的方法
2015/08/06 Javascript
基于Jquery制作图片文字排版预览效果附源码下载
2015/11/18 Javascript
实例代码详解javascript实现窗口抖动及qq窗口抖动
2016/01/04 Javascript
JavaScript实现点击单元格改变背景色的方法
2016/02/12 Javascript
基于jQuery制作小图标上下滑动特效
2017/01/18 Javascript
在 Angular 中实现搜索关键字高亮示例
2017/03/21 Javascript
浅谈对Angular中的生命周期钩子的理解
2017/07/31 Javascript
JavaScript中的高级函数
2018/01/04 Javascript
Vue 页面状态保持页面间数据传输的一种方法(推荐)
2018/11/01 Javascript
JavaScript事件对象深入详解
2018/12/30 Javascript
深入解读VUE中的异步渲染的实现
2020/06/19 Javascript
JavaScript原生数组函数实例汇总
2020/10/14 Javascript
vue.js watch经常失效的场景与解决方案
2021/01/07 Vue.js
[20:39]DOTA2-DPC中国联赛 正赛开幕式 1月18日
2021/03/11 DOTA
django 微信网页授权登陆的实现
2019/07/30 Python
Ralph Lauren英国官方网站:Ralph Lauren UK
2018/04/03 全球购物
英国最大的纸工艺品商店:CraftStash
2018/12/01 全球购物
abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?
2012/10/15 面试题
怎样自定义一个异常类
2016/09/27 面试题
护士自荐信范文
2013/12/15 职场文书
学校党风廉政建设调研报告
2015/01/01 职场文书
给领导敬酒词
2015/08/12 职场文书
python脚本框架webpy的url映射详解
2021/11/20 Python
Python制作春联的示例代码
2022/01/22 Python
Spring this调用当前类方法无法拦截的示例代码
2022/03/20 Java/Android
Python中time标准库的使用教程
2022/04/13 Python