php使用fgetcsv读取csv文件出现乱码的解决方法

2015-01-24信息快讯网

这篇文章主要介绍了php使用fgetcsv读取csv文件出现乱码的解决方法,实例分析了造成乱码的原因与对应的解决方法,并给出了Linux平台下的乱码解决方法,需要的朋友可以参考下

本文实例讲述了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 PDO fetch 模式各种参数的输出结果一览
php使用fputcsv()函数csv文件读写数据的方法
php中Socket创建与监听实现方法
php中socket通信机制实例详解
php读取csv数据保存到数组的方法
php将文本文件转换csv输出的方法
php查询mssql出现乱码的解决方法
php将csv文件导入到mysql数据库的方法
php进行支付宝开发中return_url和notify_url的区别分析
腾讯微博提示missing parameter errorcode 102 错误的解决方法
ThinkPHP打开验证码页面显示乱码的解决方法
php生成二维码时出现中文乱码的解决方法
PHP中使用file_get_contents抓取网页中文乱码问题解决方法
php中get_meta_tags()、CURL与user-agent用法分析
yii中widget的用法
phpstorm编辑器乱码问题解决
PHP使用get_headers函数判断远程文件是否存在的方法
php中fgetcsv()函数用法实例
推荐一款MAC OS X 下php集成开发环境mamp
php中file_get_contents与curl性能比较分析
php采用file_get_contents代替使用curl实例
php中使用session_set_save_handler()函数把session保存到MySQL数据库实例
php实现singleton()单例模式实例
PHP中ini_set与ini_get用法实例
php中$_GET与$_POST过滤sql注入的方法
详解PHP导入导出CSV文件
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
smarty中英文多编码字符截取乱码问题解决方法
php中json_encode UTF-8中文乱码的更好解决方法
php导出CSV抽象类实例
php操作csv文件代码实例汇总
phpword插件导出word文件时中文乱码问题处理方案
php中json_encode处理gbk与gb2312中文乱码问题的解决方法
destoon网站转移服务器后搜索汉字出现乱码的解决方法
©2014-2024 dbsqp.com