プロジェクト

全般

プロフィール

Bug(バグ) #3966

Internet Explorer 11 にてダウンロード時に日本語ファイル名が文字化けする

kaoru n7年以上前に追加. ほぼ3年前に更新.

ステータス:
Won't fix(対応せず)
優先度:
Normal(通常)
担当者:
対象バージョン:
開始日:
2016-07-14
期日:
進捗率:

0%

3.6 で発生するか:
Unknown (未調査)
3.8 で発生するか:
Yes (はい)

説明

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


関連するチケット

関連している OpenPNE 3 - Backport(バックポート) #4029: Internet Explorer 11 にてダウンロード時に日本語ファイル名が文字化けする Fixed(完了) 2016-10-27
関連している OpenPNE 3 - Backport(バックポート) #4030: Internet Explorer 11 にてダウンロード時に日本語ファイル名が文字化けする Fixed(完了) 2016-10-27

履歴

#1 kaoru n7年以上前に更新

  • ステータスNew(新規) から Pending Review(レビュー待ち) に変更
  • 担当者kaoru n にセット
  • 進捗率0 から 50 に変更

#2 Youichi Kimura7年以上前に更新

  • ステータス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

#3 Youichi Kimura7年以上前に更新

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

#4 kaoru n7年以上前に更新

  • ステータスRejected(差し戻し) から Accepted(着手) に変更
  • 進捗率50 から 0 に変更

#5 kaoru n7年以上前に更新

  • ステータスAccepted(着手) から Pending Review(レビュー待ち) に変更
  • 進捗率0 から 50 に変更

#6 Youichi Kimura7年以上前に更新

  • ステータスPending Review(レビュー待ち) から Rejected(差し戻し) に変更

$encoded_filename について改行文字の除去が行われていないため修正をお願いします。
https://github.com/openpne/OpenPNE3/pull/370#pullrequestreview-2856228

#7 kaoru n7年以上前に更新

  • ステータスRejected(差し戻し) から Pending Review(レビュー待ち) に変更

#8 Youichi Kimura7年以上前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

レビューOKです

#9 Youichi Kimura7年以上前に更新

  • ステータスPending Testing(テスト待ち) から Rejected(差し戻し) に変更
  • 進捗率70 から 50 に変更

IE8 の挙動について、ファイル名を SJIS に変換することなく UTF-8 のまま扱う方法が確認できたため修正をお願いします。
https://github.com/openpne/OpenPNE3/pull/370#pullrequestreview-3261422

#10 kaoru n7年以上前に更新

  • ステータスRejected(差し戻し) から Accepted(着手) に変更
  • 進捗率50 から 0 に変更

#11 kaoru n7年以上前に更新

  • ステータスAccepted(着手) から Pending Review(レビュー待ち) に変更
  • 進捗率0 から 50 に変更

#12 Youichi Kimura7年以上前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

レビューOKです

#13 kaoru n7年以上前に更新

#14 kaoru n7年以上前に更新

#20 kaoru n約7年前に更新

  • ステータスPending Testing(テスト待ち) から Won't fix(対応せず) に変更
  • 対象バージョンOpenPNE 3.9.0-old から OpenPNE 3.9.0 に変更
  • 進捗率70 から 0 に変更

OpenPNE 3.8.22 にて対応済みであったため、対応せずとします。

他の形式にエクスポート: Atom PDF