最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

php读取csv时,读取中文乱码问题解决方法

来源:动视网 责编:小采 时间:2020-11-27 14:19:52
文档

php读取csv时,读取中文乱码问题解决方法

php读取csv时,读取中文乱码问题解决方法:1、首先讲linux,不管是centos或者Ubuntu。在导入csv的php脚本文件头部加上如下代码:setlocale(LC_ALL,array('zh_CN.gbk','zh_CN.gb2312','zh_CN.gb18030'));这段代码的作用是改变脚本默认编码,因为操作系
推荐度:
导读php读取csv时,读取中文乱码问题解决方法:1、首先讲linux,不管是centos或者Ubuntu。在导入csv的php脚本文件头部加上如下代码:setlocale(LC_ALL,array('zh_CN.gbk','zh_CN.gb2312','zh_CN.gb18030'));这段代码的作用是改变脚本默认编码,因为操作系


1、首先讲linux,不管是centos或者Ubuntu。在导入csv的php脚本文件头部加上如下代码:

setlocale(LC_ALL,array('zh_CN.gbk','zh_CN.gb2312','zh_CN.gb18030'));

这段代码的作用是改变脚本默认编码,因为操作系统的编码格式不是GBK所以,读取中文的时候会乱码。

2、接着讲windows,我们在读取csv数据的时候,会有一个while循环遍历每一行的数据,而读取的每一行数据,就需要我们进行转义,将中文编码读取出来。代码如下:

$row = eval('return '.iconv('gbk','utf-8',var_export($row,true)).';');

$row,就是读取出来每一行的数据变量。

3、最后,贴一个fgetcsv()方法的替代函数,这种是针对有些老版本的php该函数自带着一些bug的情况。如果上边两点还是没办法解决您的问题,您可以尝试一下使用该函数,与前边两点配合使用。

function fgetcsv_reg(& $handle, $length = null, $d = ',', $e = '"') {
 $d = preg_quote($d);
 $e = preg_quote($e);
 $_line = "";
 $eof=false;
 while ($eof != true) {
 $_line .= (empty ($length) ? fgets($handle) : fgets($handle, $length));
 $itemcnt = preg_match_all('/' . $e . '/', $_line, $dummy);
 if ($itemcnt % 2 == 0)
 $eof = true;
 }
 $_csv_line = preg_replace('/(?: |[ ])?$/', $d, trim($_line));
 $_csv_pattern = '/(' . $e . '[^' . $e . ']*(?:' . $e . $e . '[^' . $e . ']*)*' . $e . '|[^' . $d . ']*)' . $d . '/';
 preg_match_all($_csv_pattern, $_csv_line, $_csv_matches);
 $_csv_data = $_csv_matches[1];
 for ($_csv_i = 0; $_csv_i < count($_csv_data); $_csv_i++) {
 $_csv_data[$_csv_i] = preg_replace('/^' . $e . '(.*)' . $e . '$/s', '$1', $_csv_data[$_csv_i]);
 $_csv_data[$_csv_i] = str_replace($e . $e, $e, $_csv_data[$_csv_i]);
 }
 return empty ($_line) ? false : $_csv_data;
}

推荐教程:PHP视频教程

文档

php读取csv时,读取中文乱码问题解决方法

php读取csv时,读取中文乱码问题解决方法:1、首先讲linux,不管是centos或者Ubuntu。在导入csv的php脚本文件头部加上如下代码:setlocale(LC_ALL,array('zh_CN.gbk','zh_CN.gb2312','zh_CN.gb18030'));这段代码的作用是改变脚本默认编码,因为操作系
推荐度:
标签: 解决办法 乱码 php
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top