BugTrack/2354
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
* 添付ファイルダウンロードで日本語ファイル名が文字化けす...
- ページ: [[BugTrack2]]
- 投稿者: [[umorigu]]
- 優先順位: 重要
- 状態: 完了
- カテゴリー: 本体バグ
- 投稿日: 2014-07-08 (火) 07:10:10
- バージョン: 1.4.7_notb -> 1.5.0 で修正済み
** メッセージ [#idb49bc3]
添付ファイルが日本語ファイル名である場合、ダウンロード時...
また、PHP5.4で動作させた場合、含まれている文字によっては ...
** 環境 [#of05b395]
- Internet Explorer 9以降 (IE8以前は文字化けしない)
- Chrome, Firefox, Safari など他の多くのブラウザ
** 原因 [#je23f5c1]
attach.inc.php : 709 の open() で
709 case 'MSIE/default':
710 $filename = mb_convert_encoding($filename, 'SJIS...
711 break;
...
714 $filename = htmlsc($filename);
720 header('Content-Disposition: inline; filename="' . ...
710行目で SJIS に変換しているが、これは古いIE(IE8以前)の...
714行目の htmlsc(htmlspecialchars)は、ここで使うのは適切...
SJISバイナリそのままhttp_outputに渡すのが元の意図と思われ...
ref.inc.php にも同じ問題がある。
** 解決策 [#j506f59c]
2014年7月現在、多くのWebブラウザが [[RFC 6266>RFC:6266]] ...
また、旧実装(filename=)を残しておくことで古いブラウザに対...
** リポジトリに取り込まれた実装 [#n3e9ecb8]
- [[commit:70fa3802880f914bd6b33bb3bae465a06a62151a]] RFC...
- [[commit:c66c5efd4960beda4a84838c4d83f664a2b1533f]] Enc...
** 修正実装案 [#p608522c]
*** plugin/attach.inc.php [#abdc85d0]
diff --git a/plugin/attach.inc.php b/plugin/attach.inc.php
index ce7f70e..355a428 100644
--- a/plugin/attach.inc.php
+++ b/plugin/attach.inc.php
@@ -711,13 +711,13 @@ EOD;
break;
}
}
- $filename = htmlsc($filename);
+ $utf8filename = mb_convert_encoding($filename, 'UTF-8...
ini_set('default_charset', '');
mb_http_output('pass');
pkwk_common_headers();
- header('Content-Disposition: inline; filename="' . $f...
+ header('Content-Disposition: inline; filename="' . $f...
header('Content-Length: ' . $this->size);
header('Content-Type: ' . $this->type);
URL: [[sourceforge.jp/users/umorigu/pf/pukiwiki15/scm/com...
*** plugin/ref.inc.php [#w10da716]
diff --git a/plugin/ref.inc.php b/plugin/ref.inc.php
index cb3fe32..f0095cf 100644
--- a/plugin/ref.inc.php
+++ b/plugin/ref.inc.php
@@ -420,12 +420,12 @@ function plugin_ref_action()
break;
}
}
- $file = htmlsc($filename);
+ $utf8filename = mb_convert_encoding($filename, 'UTF-8'...
$size = filesize($ref);
// Output
pkwk_common_headers();
- header('Content-Disposition: inline; filename="' . $fi...
+ header('Content-Disposition: inline; filename="' . $fi...
header('Content-Length: ' . $size);
header('Content-Type: ' . $type);
@readfile($ref);
URL: [[sourceforge.jp/users/umorigu/pf/pukiwiki15/scm/com...
** 補足 [#f881a85b]
- Safariなど、RFC 6266 に対応していないブラウザでは文字化...
--------
- たぶん関連: [[開発日記/2004-11-11]]、[[BugTrack/687]]、...
- 今ではUTF-8標準が当たり前になっているので、[[原因>#je23...
- 関連BugTrackで気が付きました。refプラグインにも同じ実装...
- refプラグインの対応も追加しました。 -- [[umorigu]] &new...
- 1.5.0 で修正されているので完了とします -- [[umorigu]] &...
- mb_convert_encodingのfrom_encodingパラメータがautoにな...
#comment
終了行:
* 添付ファイルダウンロードで日本語ファイル名が文字化けす...
- ページ: [[BugTrack2]]
- 投稿者: [[umorigu]]
- 優先順位: 重要
- 状態: 完了
- カテゴリー: 本体バグ
- 投稿日: 2014-07-08 (火) 07:10:10
- バージョン: 1.4.7_notb -> 1.5.0 で修正済み
** メッセージ [#idb49bc3]
添付ファイルが日本語ファイル名である場合、ダウンロード時...
また、PHP5.4で動作させた場合、含まれている文字によっては ...
** 環境 [#of05b395]
- Internet Explorer 9以降 (IE8以前は文字化けしない)
- Chrome, Firefox, Safari など他の多くのブラウザ
** 原因 [#je23f5c1]
attach.inc.php : 709 の open() で
709 case 'MSIE/default':
710 $filename = mb_convert_encoding($filename, 'SJIS...
711 break;
...
714 $filename = htmlsc($filename);
720 header('Content-Disposition: inline; filename="' . ...
710行目で SJIS に変換しているが、これは古いIE(IE8以前)の...
714行目の htmlsc(htmlspecialchars)は、ここで使うのは適切...
SJISバイナリそのままhttp_outputに渡すのが元の意図と思われ...
ref.inc.php にも同じ問題がある。
** 解決策 [#j506f59c]
2014年7月現在、多くのWebブラウザが [[RFC 6266>RFC:6266]] ...
また、旧実装(filename=)を残しておくことで古いブラウザに対...
** リポジトリに取り込まれた実装 [#n3e9ecb8]
- [[commit:70fa3802880f914bd6b33bb3bae465a06a62151a]] RFC...
- [[commit:c66c5efd4960beda4a84838c4d83f664a2b1533f]] Enc...
** 修正実装案 [#p608522c]
*** plugin/attach.inc.php [#abdc85d0]
diff --git a/plugin/attach.inc.php b/plugin/attach.inc.php
index ce7f70e..355a428 100644
--- a/plugin/attach.inc.php
+++ b/plugin/attach.inc.php
@@ -711,13 +711,13 @@ EOD;
break;
}
}
- $filename = htmlsc($filename);
+ $utf8filename = mb_convert_encoding($filename, 'UTF-8...
ini_set('default_charset', '');
mb_http_output('pass');
pkwk_common_headers();
- header('Content-Disposition: inline; filename="' . $f...
+ header('Content-Disposition: inline; filename="' . $f...
header('Content-Length: ' . $this->size);
header('Content-Type: ' . $this->type);
URL: [[sourceforge.jp/users/umorigu/pf/pukiwiki15/scm/com...
*** plugin/ref.inc.php [#w10da716]
diff --git a/plugin/ref.inc.php b/plugin/ref.inc.php
index cb3fe32..f0095cf 100644
--- a/plugin/ref.inc.php
+++ b/plugin/ref.inc.php
@@ -420,12 +420,12 @@ function plugin_ref_action()
break;
}
}
- $file = htmlsc($filename);
+ $utf8filename = mb_convert_encoding($filename, 'UTF-8'...
$size = filesize($ref);
// Output
pkwk_common_headers();
- header('Content-Disposition: inline; filename="' . $fi...
+ header('Content-Disposition: inline; filename="' . $fi...
header('Content-Length: ' . $size);
header('Content-Type: ' . $type);
@readfile($ref);
URL: [[sourceforge.jp/users/umorigu/pf/pukiwiki15/scm/com...
** 補足 [#f881a85b]
- Safariなど、RFC 6266 に対応していないブラウザでは文字化...
--------
- たぶん関連: [[開発日記/2004-11-11]]、[[BugTrack/687]]、...
- 今ではUTF-8標準が当たり前になっているので、[[原因>#je23...
- 関連BugTrackで気が付きました。refプラグインにも同じ実装...
- refプラグインの対応も追加しました。 -- [[umorigu]] &new...
- 1.5.0 で修正されているので完了とします -- [[umorigu]] &...
- mb_convert_encodingのfrom_encodingパラメータがautoにな...
#comment
ページ名: