php导出csv乱码
❶ php导入csv文件输出是乱码,怎么解决
//这是我前几天回答过的一个问题下面以读取淘宝csv文件为例
if($result){//如果上传成功了,这是文件路径
if(!($handle=fopen_utf8($result,"r"))===FALSE){//调取下边函数fopen_utf8;
$errorArr=array();
$i=0;
while(($cols=fgetcsv($handle,1000," "))!==FALSE){
++$i;
if($i<4)continue;
$taobaolmsx=$cols[21];//宝贝属性;
$taobaoxxsx=$cols[30];//销售属性;
$goodsBn=$cols[33];//商家编码;
}
fclose($handle);
}
unlink($result);
}else{
echo'fileuploaderror';exit;
}
/*读取csv文件用*/
functionfopen_utf8($filename){
$encoding='';
$handle=fopen($filename,'r');
$bom=fread($handle,2);
rewind($handle);
if($bom===chr(0xff).chr(0xfe)||$bom===chr(0xfe).chr(0xff)){
//UTF16ByteOrderMarkpresent
$encoding='UTF-16';
}else{
$file_sample=fread($handle,1000)+'e';//readfirst1000bytes
//+eisaworkaroundformb_stringbug
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);
}
❷ PHP导出CSV文件中的繁体中文在英文XP下乱码(英文XP中语言已设置)
这个问题应该是你生成csv文件时,字符编码转换导致的, 因为你从数据提取的是gbk的, csv文件可能不支持gbk编码
英文系统下的字体可能不存在, 你用什么查看这个文件的,设置文件查看器的编码
❸ php excel表格导出乱码问题应该怎么解决呢
记录一下自己的做法.
将php脚本文件的编码用notepad++修改为ANSI(windows下的编码格式)
数据库查询时先使用mysqli查询set names utf8
接着iconv函数将编码由utf8转换为gbk.excel文件导出中文则不会乱码
❹ php读取csv文件怎么是乱码
出现乱码解决办法:
csv格式不是utf的,所以在读取和写入mysql的时候就会出现乱码,用iconv函数转换下即可。
$Name=iconv('gb2312','utf-8',$file);
❺ php csv 文字乱码
你确定文字原来的编码是“windows-31J”吗?日文windows的默认编码是SHIFT-JIS(SJIS)。
另外,你所说的“CSV文件乱码”,指的是用office excel打开看乱码,还是用notepad.exe打开看乱码?
我记得office excel是不识别utf-8编码的(只用过office2003以前的版本,现在的版本不知道有没有改进)
❻ php导出到excel出乱码时怎么回事
header 定义编码时要存成和定义编码一样的文件编码模式,
header不定义编码时存为默认的ansi(gbk)模式
❼ php导出excel 乱码,因为使用phpexcel内存不足的原因
如果数据库存储的格式是utf-8.
数据输出时的格式也是utf-8。
php输出数据时是utf-8 的无BOM格式。
但是在excel,或是csv输出数据时都是要带上bom格式的数据。在excel格式的文档中乱码就需要在输出的最顶端加上 chr(0xEF).chr(0xBB).chr(0xBF)(BoM格式)就可以解决乱码问题。
❽ php 数据库 导出excel 的时候 导出成功 但是却是乱码 请问怎么解决
你指定的PHPExcel生成的是xls格式的文件。是一种电子表格格式,这种格式一般是用excel打开处理的。直接用文本方式显示就是乱码的。但为什么是直接输出这些乱而不是下载呢?是因为你没有给输出指定头信息告诉浏览器输出的内容不是直接显示而是供下载的,浏览器所以浏览器也不懂,它只好老老实实给输出来。你试着在上面那段代码前加上如下内容:
header("Cache-Control: public");
header("Pragma: public");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type:application/download");
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=你自己指定或生成文件名.xls");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
❾ PHP 导出excel文件响应的内容是一堆乱码,把这堆乱码在新的窗口打开,导出的文件是正常的,怎么解决
导出前最好转码下iconv转成gbk的,数据库里是utf8的
❿ PHP导出csv中文乱码
中文简体xp的话默认使用gb2312作为码页,他打开一个文件时使用gb码来映射字符的。用gb2312码打开utf8的文件当然会乱码。
所以想在xp里导出,需要是
mb_convert_encoding($str,"CP936","GB2312")
如果已经下下来了或者php不好改,自己想转码,就是用个编辑器比如ue,ep,设置存储为utf8。xp sp3版本的话自己也可以另存为utf8