47486
こんにちは、お世話になります。

PHPのヘッダで、下記のような感じでファイル名を指定しています。

```

    header('Content-Disposition: attachment; filename="test#1.txt"');
    
```

この記述で、FirefoxやMicrosoftEdgeなどのブラウザではうまくいくんですが、IE11だとシャープがアンダーラインに置き換わってしまい、ダウンロードしたファイル名が「test_1.txt」となってしまいます。  
これを解決する方法はありますでしょうか。  
もし方法があるようでしたら、教えていただけると幸いです。  
以上、よろしくお願いいたします。
CC BY-SA 4.0
2018-08-11T03:24:12.173
47439
2018-08-13T08:33:18.673
29034
question
php
PHPのヘッダでダウンロードファイル名を指定した時のIEの挙動について
ファイル名をURLエンコードして実行すれば可能です。  
文字コードがわかんないですが、とりあえず以下のように実施してみてください。

```

    header('Content-Disposition: attachment; filename*=UTF-8\'\''.rawurlencode("test#1.txt"));
    
```

レガシーなブラウザによっては効かない可能性がありますので、必要なブラウザでチェックをしてください。

参考URL  
<https://qiita.com/takehironet/items/79c025e4140e29c57abe>  
<https://qiita.com/khsk/items/d541b8dc40bd2c6128d2>  
<https://www.rfc-editor.org/rfc/rfc6266>
CC BY-SA 4.0
2018-08-13T08:33:18.673
47486
2018-08-13T08:33:18.673
2021-10-07T07:34:52.683
-1
22665
47439
answer