問題: PHP 入力ユーザーリストは csv ファイルですが、excel で開くと文字化けして表示されますが、ファイルのエンコーディングを見ると utf-8 で正常に表示されます。
解決策:
関数 down_file($filepath,$filename)
{
if(!file_exists($filepath))
{ www.2cto.com
echo "バックアップ エラー、ダウンロード ファイルが存在しません";
exit();
}
ob_end_clean();
header('Content-Type: application/download');
header("コンテンツタイプ: text/csv");
header('Content-Disposition:attachment;filename="'.$filename.'"');
header("コンテンツエンコーディング: バイナリ");
header("Content-Length:".filesize($filepath));
header("プラグマ: キャッシュなし");
header("有効期限: 0");
readfile($filepath);
$e=ob_get_contents();
ob_end_clean();
}
$fname='usersdata.csv';
$handle=fopen($fname,'wb');
$strUsersData =iconv('utf-8','gb2312',$strUsersData);//エンコーディングを変換します
if(fwrite($handle,$strUsersData)==false){}
fclose($handle);
down_file($fname,'555.csv');