php导出excel 乱码求解

Eric 发布于 2012/02/26 15:53
阅读 16K+
收藏 0
PHP
我在Windows+php下做导出excel,我的页面是用UTF-8编码的,要怎么做才能保证导出的excel不会发生乱码?而且不同操作系统上面难道由于系统编码不同,所以一定要提供不同编码格式的文件进行下载吗?
加载中
1
飞晏
飞晏

导出之前需要转换为GBK

iconv("UTF-8", "GBK", $value);

0
蟋蟀哥哥
蟋蟀哥哥

不用excel打开  用openoffice打开,或者wps

  excel打开UTF-8的csv文件的话。。有的版本坏乱码

0
Eric
Eric

引用来自“PHP猎头,找工作给我发简历”的答案

不用excel打开  用openoffice打开,或者wps

  excel打开UTF-8的csv文件的话。。有的版本坏乱码

那我总不能要求别人一定要用opeonoffice把
0
Eric
Eric

引用来自“飞晏”的答案

导出之前需要转换为GBK

iconv("UTF-8", "GBK", $value);

<?php
/*
 * Created on 2012-2-26
 *
 * To change the template for this generated file go to
 * Window - Preferences - PHPeclipse - PHP - Code Templates
 */
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=php100.xls");
?>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<table>
	<tr>
		<td colspan="4"><font color="red" align="center">class infomation</font></td>
	</tr>
	<tr>
		<td><?php echo iconv("UTF-8", "GBK", "编号"); ?></td>
		<td><?php echo iconv("UTF-8", "GBK", "姓名"); ?></td>
		<td><?php echo iconv("UTF-8", "GBK", "学号"); ?></td>
		<td><?php echo iconv("UTF-8", "GBK", "性别"); ?></td>
	</tr>
</table>
我写成这样了还是不行,求指点
0
我就是团队
我就是团队
加BOM头试下
0
Eric
Eric

引用来自“陈俊贤”的答案

加BOM头试下
加BOM头是什么意思?是指把我这个PHP文件保存成UTF-8+BOM格式吗
0
飞晏
飞晏

引用来自“低调走过”的答案

引用来自“飞晏”的答案

导出之前需要转换为GBK

iconv("UTF-8", "GBK", $value);

<?php
/*
 * Created on 2012-2-26
 *
 * To change the template for this generated file go to
 * Window - Preferences - PHPeclipse - PHP - Code Templates
 */
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=php100.xls");
?>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<table>
	<tr>
		<td colspan="4"><font color="red" align="center">class infomation</font></td>
	</tr>
	<tr>
		<td><?php echo iconv("UTF-8", "GBK", "编号"); ?></td>
		<td><?php echo iconv("UTF-8", "GBK", "姓名"); ?></td>
		<td><?php echo iconv("UTF-8", "GBK", "学号"); ?></td>
		<td><?php echo iconv("UTF-8", "GBK", "性别"); ?></td>
	</tr>
</table>
我写成这样了还是不行,求指点
header("content-Type:text/html; charset=gbk");
header("Content-Type:application/vnd.ms-excel");

我的里面还加的有个header头,设为gbk。其他的除了数据我是按照CSV那样导出的,结构神马的跟你的一样了

0
Eric
Eric

引用来自“飞晏”的答案

引用来自“低调走过”的答案

引用来自“飞晏”的答案

导出之前需要转换为GBK

iconv("UTF-8", "GBK", $value);

<?php
/*
 * Created on 2012-2-26
 *
 * To change the template for this generated file go to
 * Window - Preferences - PHPeclipse - PHP - Code Templates
 */
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=php100.xls");
?>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<table>
	<tr>
		<td colspan="4"><font color="red" align="center">class infomation</font></td>
	</tr>
	<tr>
		<td><?php echo iconv("UTF-8", "GBK", "编号"); ?></td>
		<td><?php echo iconv("UTF-8", "GBK", "姓名"); ?></td>
		<td><?php echo iconv("UTF-8", "GBK", "学号"); ?></td>
		<td><?php echo iconv("UTF-8", "GBK", "性别"); ?></td>
	</tr>
</table>
我写成这样了还是不行,求指点
header("content-Type:text/html; charset=gbk");
header("Content-Type:application/vnd.ms-excel");

我的里面还加的有个header头,设为gbk。其他的除了数据我是按照CSV那样导出的,结构神马的跟你的一样了

你导出后的文件用什么打开的
0
飞晏
飞晏

引用来自“低调走过”的答案

引用来自“飞晏”的答案

引用来自“低调走过”的答案

引用来自“飞晏”的答案

导出之前需要转换为GBK

iconv("UTF-8", "GBK", $value);

<?php
/*
 * Created on 2012-2-26
 *
 * To change the template for this generated file go to
 * Window - Preferences - PHPeclipse - PHP - Code Templates
 */
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=php100.xls");
?>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<table>
	<tr>
		<td colspan="4"><font color="red" align="center">class infomation</font></td>
	</tr>
	<tr>
		<td><?php echo iconv("UTF-8", "GBK", "编号"); ?></td>
		<td><?php echo iconv("UTF-8", "GBK", "姓名"); ?></td>
		<td><?php echo iconv("UTF-8", "GBK", "学号"); ?></td>
		<td><?php echo iconv("UTF-8", "GBK", "性别"); ?></td>
	</tr>
</table>
我写成这样了还是不行,求指点
header("content-Type:text/html; charset=gbk");
header("Content-Type:application/vnd.ms-excel");

我的里面还加的有个header头,设为gbk。其他的除了数据我是按照CSV那样导出的,结构神马的跟你的一样了

你导出后的文件用什么打开的
Excel 2007
0
Eric
Eric

引用来自“飞晏”的答案

引用来自“低调走过”的答案

引用来自“飞晏”的答案

引用来自“低调走过”的答案

引用来自“飞晏”的答案

导出之前需要转换为GBK

iconv("UTF-8", "GBK", $value);

<?php
/*
 * Created on 2012-2-26
 *
 * To change the template for this generated file go to
 * Window - Preferences - PHPeclipse - PHP - Code Templates
 */
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=php100.xls");
?>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<table>
	<tr>
		<td colspan="4"><font color="red" align="center">class infomation</font></td>
	</tr>
	<tr>
		<td><?php echo iconv("UTF-8", "GBK", "编号"); ?></td>
		<td><?php echo iconv("UTF-8", "GBK", "姓名"); ?></td>
		<td><?php echo iconv("UTF-8", "GBK", "学号"); ?></td>
		<td><?php echo iconv("UTF-8", "GBK", "性别"); ?></td>
	</tr>
</table>
我写成这样了还是不行,求指点
header("content-Type:text/html; charset=gbk");
header("Content-Type:application/vnd.ms-excel");

我的里面还加的有个header头,设为gbk。其他的除了数据我是按照CSV那样导出的,结构神马的跟你的一样了

你导出后的文件用什么打开的
Excel 2007

我用EXCEL2010试了你的方法,如果我加上下面的这句代码就不会乱码,但是会提示格式不对

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

但是我把这句话删掉的话就提示格式不对+乱码

另外,我用WPS打开的话就完全没有问题,难道一定要用某些软件才可以打开吗

返回顶部
顶部