为什么读出的非英文字符显示为乱码,怎么处理?

用这种方法读取CSV文件:

<?php
 $file = fopen("contacts.csv","r"); 
while(! feof($file))
  {  print_r(fgetcsv($file));
  } 
fclose($file); 
?>

一下子把所有数据取出来了,文件的第一行是标题,第二行以后是要取的数据,怎么取?


慕哥6287543
浏览 82回答 3
3回答

白猪掌柜的

1. while之前加一行 fgets($file);2. 你的文件编码是啥,显示出来的应该是啥编码,搞清楚以后用iconv/mbstring转码一下就好了。

牛魔王的故事

$file&nbsp;=&nbsp;fopen("contacts.csv",&nbsp;"r");fgetcsv($file);while(!feof($file)&nbsp;&&&nbsp;$data&nbsp;=&nbsp;fgetcsv($file)) &nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$csv_datas&nbsp;=&nbsp;array(); $csv_datas['column1']&nbsp;=&nbsp;mb_convert_encoding($data[1],&nbsp;'UTF-8',&nbsp;'UTF-8,Shift_JIS');&nbsp; //&nbsp;...}值得注意的是,第一列要加多余的列,真实数据从第二列才开始读得对,不知为什么。

繁花不似锦

1.在页面最顶端加入:header("Content-type:text/html;charset=utf-8");2.<?php &nbsp;$file&nbsp;=&nbsp;fopen("contacts.csv","r");$data&nbsp;=&nbsp;fgetcsv($file);while(!&nbsp;feof($file)) &nbsp;&nbsp;{&nbsp;&nbsp;print_r($data&nbsp;=&nbsp;fgetcsv($file)); &nbsp;&nbsp;}&nbsp; fclose($file);&nbsp; ?>
打开App,查看更多内容
随时随地看视频慕课网APP