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模板引擎SMARTY
Oct 09 PHP
php中使用cookie来保存用户登录信息的实现代码
Mar 08 PHP
(PHP实现)只使用++运算实现加法,减法,乘法,除法
Jun 27 PHP
php中mail函数发送邮件失败的解决方法
Dec 24 PHP
php curl登陆qq后获取用户信息时证书错误
Feb 03 PHP
PHP 5.3和PHP 5.4出现FastCGI Error解决方法
Feb 12 PHP
php查询相似度最高的字符串的方法
Mar 12 PHP
php curl 获取https请求的2种方法
Apr 27 PHP
编写PHP脚本使WordPress的主题支持Widget侧边栏
Dec 14 PHP
php生成二维码不保存服务器还有下载功能的实现代码
Aug 09 PHP
解决php扩展安装不生效问题
Oct 25 PHP
PHP设计模式之装饰器(装饰者)模式(Decorator)入门与应用详解
Dec 13 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
Codeigniter上传图片出现“You did not select a file to upload”错误解决办法
2014/06/12 PHP
PHP的魔术常量__METHOD__简介
2014/07/08 PHP
PHP基于自增数据如何生成不重复的随机数示例
2017/05/19 PHP
thinkPHP3.2.3实现阿里大于短信验证的方法
2018/06/06 PHP
jquery刷新页面的实现代码(局部及全页面刷新)
2011/07/11 Javascript
在Windows上安装Node.js模块的方法
2011/09/25 Javascript
jquery 元素控制(追加元素/追加内容)介绍及应用
2013/04/21 Javascript
JavaScript 常见安全漏洞和自动化检测技术
2015/08/21 Javascript
轮播图组件js代码
2016/08/08 Javascript
jQuery元素属性操作实例(设置、获取及删除元素属性)
2016/09/08 Javascript
再谈javascript常见错误及解决方法
2016/09/16 Javascript
jQuery validate 验证radio实例
2017/03/01 Javascript
jquery.uploadifive插件怎么解决上传限制图片或文件大小问题
2017/05/08 jQuery
React Native之ListView实现九宫格效果的示例
2017/08/02 Javascript
JSON生成Form表单的方法示例
2018/11/21 Javascript
element的el-table中记录滚动条位置的示例代码
2019/11/06 Javascript
在antd Form表单中select设置初始值操作
2020/11/02 Javascript
[03:10]2014DOTA2 TI马来劲旅Titan首战告捷目标只是8强
2014/07/10 DOTA
[04:26]DOTA2上海特锦赛小组赛第二日 TOP10精彩集锦
2016/02/27 DOTA
python利用elaphe制作二维条形码实现代码
2012/05/25 Python
在Python中处理字符串之isdigit()方法的使用
2015/05/18 Python
浅析Python中的join()方法的使用
2015/05/19 Python
Python中表示字符串的三种方法
2017/09/06 Python
python线程中同步锁详解
2018/04/27 Python
Form表单及django的form表单的补充
2019/07/25 Python
如何卸载python插件
2020/07/08 Python
python 将列表里的字典元素合并为一个字典实例
2020/09/01 Python
施华洛世奇匈牙利官网:SWAROVSKI匈牙利
2019/07/06 全球购物
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?
2013/02/17 面试题
营业员演讲稿
2013/12/30 职场文书
初中高效课堂实施方案
2014/02/26 职场文书
追悼会主持词
2014/03/20 职场文书
2014年行政后勤工作总结
2014/12/06 职场文书
开学季:喜迎新生,迎新标语少不了
2019/11/07 职场文书
如何使用CocosCreator对象池
2021/04/14 Javascript
SQL试题 使用窗口函数选出连续3天登录的用户
2022/04/24 Oracle