ホームページ >バックエンド開発 >PHPチュートリアル >phpexcelエクスポート中国語ファイル名エラー
header("Content-Disposition:attachment;filename=$filename");
$filename が中国語の場合、ダウンロードされるファイルは .php になります。英語の場合は、
になります。
試してみましょう
$user_agent = $_SERVER['Http_User_agent']; $encode_filename = rawurlencode($filename); if(preg_match("/MSIE/", $user_agent)){ header('content-disposition:attachment; filename="'.$encode_filename.'"'); }else if(preg_match("/Firefox/", $user_agent)){ header("content-disposition:attachment; filename*=\"utf8''".$filename.'"'); }else{ header('content-disposition:attachment; filename="'.$filename.'"'); }
試してください
$user_agent = $_SERVER['Http_User_agent']; $encode_filename = rawurlencode($filename); if(preg_match("/MSIE/", $user_agent)){ header('content-disposition:attachment; filename="'.$encode_filename.'"'); }else if(preg_match("/Firefox/", $user_agent)){ header("content-disposition:attachment; filename*=\"utf8''".$filename.'"'); }else{ header('content-disposition:attachment; filename="'.$filename.'"'); }
1 . header("Content-Disposition:attachment;filename = $filename"); パスのない純粋なファイル名である必要があります
2. phpexcel のデフォルトの文字セットは utf-8 であり、ほとんどの人は resource-プログラムファイルを保存するためにutf-8を無駄にします。 BOM ヘッダーが存在することは避けられません
実際、Microsoft は非常に配慮していますが、英語以外のシステムでは 2 バイトのみを使用します (utf-8 中国語は 3 バイトです)
a 全角中国語が理解できない人は、三バイト中国語も理解できないのです。では、いわゆる国際化は自分自身と他人を欺いているのではありませんか?
1. header("Content-Disposition:attachment;filename= $filename"); パスのない純粋なファイル名である必要があります
2. phpexcel のデフォルトの文字セットは utf- 8. ほとんどの人は、プログラム ファイルを保存するためにリソースを浪費する utf-8 を使用します。 BOM ヘッダーが存在する可能性は避けられません