質問: こんにちは、お世話になります。 PHPのヘッダで、下記のような感じでファイル名を指定しています。 ``` header('Content-Disposition: attachment; filename="test#1.txt"'); ``` この記述で、FirefoxやMicrosoftEdgeなどのブラウザではうまくいくんですが、IE11だとシャープがアンダーラインに置き換わってしまい、ダウンロードしたファイル名が「test_1.txt」となってしまいます。 これを解決する方法はありますでしょうか。 もし方法があるようでしたら、教えていただけると幸いです。 以上、よろしくお願いいたします。
回答: ファイル名をURLエンコードして実行すれば可能です。 文字コードがわかんないですが、とりあえず以下のように実施してみてください。 ``` header('Content-Disposition: attachment; filename*=UTF-8\'\''.rawurlencode("test#1.txt")); ``` レガシーなブラウザによっては効かない可能性がありますので、必要なブラウザでチェックをしてください。 参考URL