ob_start();
echo 'Désçàui';
header("Content-Type: application/vnd.ms-excel; charset=utf-8");
header("Content-type: application/x-msexcel; charset=utf-8");
header("Content-Disposition: attachment; filename=Test.xls");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
ob_end_flush();
Run Code Online (Sandbox Code Playgroud)
我在excel文件中得到的是 Désçà ui
但是,当我尝试时,我确实得到了Désçàui
ob_start();
echo 'Désçàui';
header("Content-Type: text/html; charset=utf-8");
ob_end_flush();
Run Code Online (Sandbox Code Playgroud)
有帮助专家吗?
PS.该文件以标题/编码Unicode(Utf-8)保存在DW中.
小智 20
来源http://www.mwasif.com/2007/5/download-data-csv-using-php/
丹麦人Zahur说,
2009年10月7日@ 7:23 pm
如果您的内容是UTF-8格式,则无需转换编码.只需在标题后使用UTF-8 BOM启动文件/输出流.
echo pack("CCC",0xef,0xbb,0xbf);
标头应包含UTF-8编码
header( "Content-type: application/vnd.ms-excel; charset=UTF-8" );
它将像魅力一样工作,因为Excel将识别具有BOM字节的文件字符集.
小智 20
我不知道你是如何生成excel文件的.但是,如果您是从HTML输出中执行此操作,则可以在开头添加以下内容:
<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
问候
Dr.*_*lle 18
我不确定,但可能是excel无法处理utf8(可能取决于版本).但它可以处理utf16,所以尝试转换字符集.这对我有用(在excel2002中):
echo mb_convert_encoding('Désçàui','utf-16','utf-8');
Run Code Online (Sandbox Code Playgroud)
这个UTF-8 BOM代码行使我的UTF-8字符工作正常:
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename='".$file_name."'");
header("Pragma: no-cache");
header("Expires: 0");
echo "\xEF\xBB\xBF"; //UTF-8 BOM
echo $out;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
75272 次 |
| 最近记录: |