php导入csv文件输出是乱码,怎么解决
如图:按照php手册中的方法导入csv文件,输出是乱码,然后加了iconv函数,就是$data=iconv('UTF-8','GBK//IGNORE',$data);这句...
如图:
按照php手册中的方法导入csv文件,输出是乱码,然后加了iconv函数,就是$data = iconv('UTF-8', 'GBK//IGNORE', $data);这句,之后还是有问题,打印出iconv() expects parameter 3 to be string, array given in,我在网上找到的方法都是这么写的呀,求详细告知!谢谢! 展开
按照php手册中的方法导入csv文件,输出是乱码,然后加了iconv函数,就是$data = iconv('UTF-8', 'GBK//IGNORE', $data);这句,之后还是有问题,打印出iconv() expects parameter 3 to be string, array given in,我在网上找到的方法都是这么写的呀,求详细告知!谢谢! 展开
推荐于2016-07-04 · 知道合伙人软件行家
关注
展开全部
//这是我前几天回答过的一个问题下面以读取淘宝csv文件为例
if($result){ //如果上传成功了,这是文件路径
if (!($handle = fopen_utf8($result, "r")) === FALSE){ //调取下边函数fopen_utf8;
$errorArr = array();
$i=0;
while (($cols = fgetcsv($handle, 1000, "\t")) !== FALSE) {
++$i;
if($i<4) continue;
$taobaolmsx = $cols[21];//宝贝属性;
$taobaoxxsx = $cols[30];//销售属性;
$goodsBn = $cols[33];//商家编码;
}
fclose($handle);
}
unlink($result);
}else{
echo 'file upload error';exit;
}
/*读取csv文件用 */
function fopen_utf8($filename){
$encoding='';
$handle = fopen($filename, 'r');
$bom = fread($handle, 2);
rewind($handle);
if($bom === chr(0xff).chr(0xfe) || $bom === chr(0xfe).chr(0xff)){
// UTF16 Byte Order Mark present
$encoding = 'UTF-16';
} else {
$file_sample = fread($handle, 1000) + 'e'; //read first 1000 bytes
// + e is a workaround for mb_string bug
rewind($handle);
$encoding = mb_detect_encoding($file_sample , 'UTF-8, UTF-7, ASCII, EUC-JP,SJIS, eucJP-win, SJIS-win, JIS, ISO-2022-JP');
}
if ($encoding){
stream_filter_append($handle, 'convert.iconv.'.$encoding.'/UTF-8');
}
return ($handle);
}
追答
下载这个文件测试,用我发你的代码,先看能不能成功。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询