为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕哥6287543 2023-04-16 12:08:50
用这种方法读取CSV文件:<?php  $file = fopen("contacts.csv","r");  while(! feof($file))   {  print_r(fgetcsv($file));   }  fclose($file);  ?>一下子把所有数据取出来了,文件的第一行是标题,第二行以后是要取的数据,怎么取?
查看完整描述

3 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

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

查看完整回答
反对 回复 2023-04-20
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

$file = fopen("contacts.csv", "r");fgetcsv($file);while(!feof($file) && $data = fgetcsv($file))
 {        $csv_datas = array();	$csv_datas['column1'] = mb_convert_encoding($data[1], 'UTF-8', 'UTF-8,Shift_JIS'); 
	// ...}

值得注意的是,第一列要加多余的列,真实数据从第二列才开始读得对,不知为什么。


查看完整回答
反对 回复 2023-04-20
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

1.在页面最顶端加入:header("Content-type:text/html;charset=utf-8");
2.

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


查看完整回答
反对 回复 2023-04-20
  • 3 回答
  • 0 关注
  • 78 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信