Bug(バグ) #3966
完了Internet Explorer 11 にてダウンロード時に日本語ファイル名が文字化けする
0%
説明
Overview (現象)¶
Internet Explorer 11 にてダウンロード時に日本語ファイル名が文字化けする
発生箇所:管理画面→画像・書き込み管理→アップロードファイルリスト
その他にもあるかどうかは未調査
Causes (原因)¶
Internet Explorer 11 の User Agent に MSIE が含まれないため、ファイル名を Shift-JIS に変換する処理が行われない
Way to fix (修正内容)¶
修正内容を記入
参考¶
http://www.illareya.net/help/ie11_download_error_bug/01.html
http://www.msng.info/archives/2014/04/internet-explorer-11-user-agant-change.php
http://blog.webmail.biglobe.ne.jp/201312/article_2.html
http://qiita.com/takehironet/items/79c025e4140e29c57abe
Youichi Kimura さんが約8年前に更新
- ステータス を Pending Review(レビュー待ち) から Rejected(差し戻し) に変更
User-Agent に MSIE が含まれていた場合の動作について、filename="..."
と filename*=utf-8''...
が両方とも SJIS でエンコードされた状態になっています。
このような場合も filename*=utf-8''...
には常に UTF-8 でエンコードされたファイル名が入るように修正して下さい。
(IE9, IE10 は User-Agent に MSIE を含みますが、filename*=utf-8''...
があればこちらが優先的に使われます)
通常のレスポンス:
$ curl -v -b 'OpenPNE_pc_backend=a856c308144700966e799801ba0b082e' 'https://s.upsilo.net/master/pc_backend.php/monitoring/fileDownload/id/3' > GET /master/pc_backend.php/monitoring/fileDownload/id/3 HTTP/1.1 > Host: s.upsilo.net > User-Agent: curl/7.50.1 > Accept: */* > Cookie: OpenPNE_pc_backend=a856c308144700966e799801ba0b082e > < HTTP/1.1 200 OK < Date: Mon, 05 Sep 2016 10:03:08 GMT < Server: Apache/2.4.23 (Debian) < X-Powered-By: PHP/5.6.24 < Expires: Thu, 19 Nov 1981 08:52:00 GMT < Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 < Pragma: no-cache < Content-Disposition: attachment; filename="%E6%97%A5%E6%9C%AC%E8%AA%9E.txt"; filename*=utf-8''%E6%97%A5%E6%9C%AC%E8%AA%9E.txt < Strict-Transport-Security: max-age=15768000 < Upgrade: h2,h2c < Connection: Upgrade < Content-Length: 9 < Content-Type: application/octet-stream < hogehoge
User-Agent に MSIE を含むクライアントへのレスポンス:
$ curl -v -b 'OpenPNE_pc_backend=a856c308144700966e799801ba0b082e' -A 'MSIE' 'https://s.upsilo.net/master/pc_backend.php/monitoring/fileDownload/id/3' > GET /master/pc_backend.php/monitoring/fileDownload/id/3 HTTP/1.1 > Host: s.upsilo.net > User-Agent: MSIE > Accept: */* > Cookie: OpenPNE_pc_backend=a856c308144700966e799801ba0b082e > < HTTP/1.1 200 OK < Date: Mon, 05 Sep 2016 10:02:44 GMT < Server: Apache/2.4.23 (Debian) < X-Powered-By: PHP/5.6.24 < Expires: Thu, 19 Nov 1981 08:52:00 GMT < Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 < Pragma: no-cache < Content-Disposition: attachment; filename="%93%FA%96%7B%8C%EA.txt"; filename*=utf-8''%93%FA%96%7B%8C%EA.txt < Strict-Transport-Security: max-age=15768000 < Upgrade: h2,h2c < Connection: Upgrade < Content-Length: 9 < Content-Type: application/octet-stream < hogehoge
Youichi Kimura さんが約8年前に更新
filename="..."
については URL エンコードを施さない状態のファイル名を返して下さい。
#3966-2 の例でいうと、下記のようなヘッダが返される状態になります。
(MSIE であれば filename="..."
の部分が URL エンコードされていない SJIS のファイル名になり、filename*=utf-8''...
の部分は他のブラウザと同じ URL エンコードされた UTF-8 のファイル名が入る)
Content-Disposition: attachment; filename="日本語.txt"; filename*=utf-8''%E6%97%A5%E6%9C%AC%E8%AA%9E.txt
Youichi Kimura さんが約8年前に更新
- ステータス を Pending Review(レビュー待ち) から Rejected(差し戻し) に変更
$encoded_filename
について改行文字の除去が行われていないため修正をお願いします。
https://github.com/openpne/OpenPNE3/pull/370#pullrequestreview-2856228
Youichi Kimura さんが約8年前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
レビューOKです
Youichi Kimura さんが約8年前に更新
- ステータス を Pending Testing(テスト待ち) から Rejected(差し戻し) に変更
- 進捗率 を 70 から 50 に変更
IE8 の挙動について、ファイル名を SJIS に変換することなく UTF-8 のまま扱う方法が確認できたため修正をお願いします。
https://github.com/openpne/OpenPNE3/pull/370#pullrequestreview-3261422
Youichi Kimura さんが約8年前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
レビューOKです
kaoru n さんが約8年前に更新
- 関連している Backport(バックポート) #4029: Internet Explorer 11 にてダウンロード時に日本語ファイル名が文字化けする を追加
kaoru n さんが約8年前に更新
- 関連している Backport(バックポート) #4030: Internet Explorer 11 にてダウンロード時に日本語ファイル名が文字化けする を追加