【PHP】如何下载CSV文件

你好

以前下载CSV文件的页面经常出现乱码问题,但最近情况如何呢。

代替性的表达方法很多,这里提供一种选项:源代码。

在Windows/Mac系统上遇到了问题,无法正常运行。

<?php
error_reporting( -1 ) ;
ini_set( 'display_errors', 1 ) ;

$csv_text = '㍊,㍻,髙,靍,濵,﨑,①,Ⅳ' ;
$csv_file_name = 'やゔぁい文字が含まれた.csv' ;


header('Content-Type: text/csv') ;
header('Content-Disposition: attachment; filename=' . $csv_file_name . "; filename*=UTF-8''" . urlencode($csv_file_name)) ;
echo pack('C*',0xEF,0xBB,0xBF) . $csv_text ;

结束

请问,是否已经结束了那个指定 Content-Type 为 application/vnd.ms-excel 或 application/octet-stream 的时代?
是否已经结束了使用 mb_convert_encoding() 函数将编码转换为 SJIS-win 的时代?
是否已经结束了为了 Mac 版本的 Excel 转换为带 BOM 的 UTF-16LE 的时代?
是否已经结束了限制文件名只能包含字母的时代?

很棒

参考和注释

    • 【PHP】mb_convert_encodingでUTF-8→SJIS文字化け

 

    • 【php】はしご高が文字化けしない文字コード変換

 

    • PHPでダウンロードさせるファイル名がIEで文字化けする件 – Qiita

 

    • ExcelでBOM付きが無双するPHPでのCSVの書き出し方

 

    • エクセルで文字化けさせないCSVの作り方

 

    • PHPでExcelで開いても文字化けしないCSVを出力する – Qiita

 

    List of HTTP header fields – Wikipedia

但是我听说Apache OpenOffice无法打开。真的吗?

我想向那些很懂的人请教后面刺激我一下。

广告
将在 10 秒后关闭
bannerAds