Project

General

Profile

Bug(バグ) #3966

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

Added by kaoru n about 3 years ago. Updated over 2 years ago.

Status:
Won't fix(対応せず)
Priority:
Normal(通常)
Assignee:
Target version:
Start date:
2016-07-14
Due date:
% Done:

0%

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

Description

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


Related issues

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

History

#1 Updated by kaoru n almost 3 years ago

  • Status changed from New(新規) to Pending Review(レビュー待ち)
  • Assignee set to kaoru n
  • % Done changed from 0 to 50

#2 Updated by Youichi Kimura almost 3 years ago

  • Status changed from Pending Review(レビュー待ち) to 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 Updated by Youichi Kimura almost 3 years ago

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 Updated by kaoru n almost 3 years ago

  • Status changed from Rejected(差し戻し) to Accepted(着手)
  • % Done changed from 50 to 0

#5 Updated by kaoru n almost 3 years ago

  • Status changed from Accepted(着手) to Pending Review(レビュー待ち)
  • % Done changed from 0 to 50

#6 Updated by Youichi Kimura almost 3 years ago

  • Status changed from Pending Review(レビュー待ち) to Rejected(差し戻し)

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

#7 Updated by kaoru n almost 3 years ago

  • Status changed from Rejected(差し戻し) to Pending Review(レビュー待ち)

#8 Updated by Youichi Kimura almost 3 years ago

  • Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
  • % Done changed from 50 to 70

レビューOKです

#9 Updated by Youichi Kimura almost 3 years ago

  • Status changed from Pending Testing(テスト待ち) to Rejected(差し戻し)
  • % Done changed from 70 to 50

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

#10 Updated by kaoru n almost 3 years ago

  • Status changed from Rejected(差し戻し) to Accepted(着手)
  • % Done changed from 50 to 0

#11 Updated by kaoru n almost 3 years ago

  • Status changed from Accepted(着手) to Pending Review(レビュー待ち)
  • % Done changed from 0 to 50

#12 Updated by Youichi Kimura almost 3 years ago

  • Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
  • % Done changed from 50 to 70

レビューOKです

#13 Updated by kaoru n almost 3 years ago

#14 Updated by kaoru n almost 3 years ago

#20 Updated by kaoru n over 2 years ago

  • Status changed from Pending Testing(テスト待ち) to Won't fix(対応せず)
  • Target version changed from OpenPNE 3.9.0-old to OpenPNE 3.9.0
  • % Done changed from 70 to 0

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

Also available in: Atom PDF