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 相关文章推荐
模板引擎Smarty深入浅出介绍
Dec 06 PHP
PHP的array_diff()函数在处理大数组时的效率问题
Nov 27 PHP
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
May 08 PHP
ThinkPHP3.1新特性之多数据库操作更加完善
Jun 19 PHP
PHP中imagick函数的中文解释
Jan 21 PHP
php程序内部post数据的方法
Mar 31 PHP
php实现购物车功能(下)
Jan 05 PHP
PHP如何使用Memcached
Apr 05 PHP
php常用数组函数实例小结
Dec 29 PHP
PHP使用file_get_contents发送http请求功能简单示例
Apr 29 PHP
php使用QueryList轻松采集js动态渲染页面方法
Sep 11 PHP
thinkphp5 路由分发原理
Mar 18 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编码规范-php coding standard
2007/03/16 PHP
CodeIgniter整合Smarty的方法详解
2017/08/25 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
2019/01/16 PHP
php array 转json及java 转换 json数据格式操作示例
2019/11/13 PHP
文件编码导致jquery失效的解决方法
2013/06/26 Javascript
JS实现QQ图片一闪一闪的效果小例子
2013/07/31 Javascript
含有CKEditor的表单如何提交
2014/01/09 Javascript
Node.js 服务器端应用开发框架 -- Hapi.js
2014/07/29 Javascript
jQuery实现图片向左向右切换效果的简单实例
2016/05/18 Javascript
Angularjs 制作购物车功能实例代码
2016/09/14 Javascript
js倒计时小实例(多次定时)
2016/12/08 Javascript
Angularjs 手写日历的实现代码(不用插件)
2017/10/18 Javascript
详解react、redux、react-redux之间的关系
2018/04/11 Javascript
AngularJS发送异步Get/Post请求方法
2018/08/13 Javascript
微信小程序tabbar底部导航
2018/11/05 Javascript
layui select 禁止点击的实现方法
2019/09/05 Javascript
Vue两个版本的区别和使用方法(更深层次了解)
2020/02/16 Javascript
微信小程序云函数添加数据到数据库的方法
2020/03/04 Javascript
JavaScript Tab菜单实现过程解析
2020/05/13 Javascript
[03:24]2014DOTA2国际邀请赛 神秘商店生意火爆
2014/07/18 DOTA
[46:57]EG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[00:17]天涯墨客一技能展示
2018/08/25 DOTA
python提取字典key列表的方法
2015/07/11 Python
Python实现的序列化和反序列化二叉树算法示例
2019/03/02 Python
Python、 Pycharm、Django安装详细教程(图文)
2019/04/12 Python
使用Python自动生成HTML的方法示例
2019/08/06 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
2020/01/08 Python
python利用百度云接口实现车牌识别的示例
2020/02/21 Python
Django通过json格式收集主机信息
2020/05/29 Python
python 利用toapi库自动生成api
2020/10/19 Python
韩国演唱会订票网站:StubHub韩国
2019/01/17 全球购物
大学理论知识学习自我鉴定
2014/04/28 职场文书
使用PDF.js渲染canvas实现预览pdf的效果示例
2021/04/17 Javascript
Python中requests做接口测试的方法
2021/05/30 Python
mysql中int(3)和int(10)的数值范围是否相同
2021/10/16 MySQL
SQL Server 中的事务介绍
2022/05/20 SQL Server