質問箱/236
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
**[[質問箱/236]] [#tcbecb59]
|RIGHT:70|LEFT:410|c
|~カテゴリ||
|~サマリ|SJISテキストファイルのダウンロードで文字化け|
|~バージョン|1.4|
|~投稿者|[[ny]]|
|~状態|完了|
|~投稿日|&new{2003-08-08 (FRI) 11:30:57};|
***質問 [#d97621b5]
SHIFT-JISで記述したテキストファイルを添付して、ダウンロー...
IEで閲覧してファイル名をクリックすると、やけに時間がかか...
attachフォルダ内のファイルを直接覗いてみると正しく表示さ...
同じファイルをEUCで保存してアップロードしたら、特に問題な...
MIMEの設定がまずいのかとも思ったのですが、PukiWikiで添付...
以前1.3.5を使用していたときは問題なくダウンロードできてい...
:環境|
-Windows 2000 SP3
-Apache/1.3.28 (Win32) PHP/4.3.2
-PukiWIki 1.4rc3 EUCコードで運用
#br
よろしくお願いします。
:アップロードしたファイル|&ref(Sample.sjis.txt);
:ダウンロード後のファイル|&ref(Sample.sjis.txt.download);
***回答 [#k6380a13]
-[[sha]] &new{2003-08-09 (SAT) 16:13:03};
~状況が再現できません。ちなみに、上の「アップロードしたフ...
-[[ny]] &new{2003-08-11 (MON) 12:59:15};
~こちらのサーバでからは正常にダウンロードできますね。うち...
-[[merlin]] &new{2003-08-11 (MON) 13:38:16};
~linux系のサーバでは再現しませんねぇ。ダウンロード後のフ...
-[[sha]] &new{2003-08-11 (MON) 16:08:39};
~行き詰まったら現場へ戻れとも言いますので⌣、「[[Puk...
-[[ny]] &new{2003-08-27 (WED) 10:54:51};
~Windows向けのものやmbstringの設定も見直してみたのですが...
--[[sha]] &new{2003-08-27 (WED) 11:30:24};
~うーむ。なぞですね。そもそもダウンロードで、ファイルの中...
~同じサーバ上に、その問題のファイルへのリンクを張った単な...
~また、後半の「更新されない」現象はおそらく別の症状でして...
-[[ny]] &new{2003-09-01 (MON) 18:03:49};
~ご丁寧にありがとうございます。直接attach/[ファイル名]のU...
-[[ny]] &new{2003-09-01 (MON) 18:21:11};
~不思議な現象が・・・ テストで添付していたファイルを削除...
http://server/?plugin=attach&pcmd=open&file=file.txt&ref...
はOKで、
http://server/?plugin=attach&pcmd=open&file=file.txt&ref...
はNGという状況です。ファイル内容は同一です。
-[[sha]] &new{2003-09-01 (MON) 21:07:52};
~それは重要なヒントですね。この現象の違いはおそらく''atta...
if (!preg_match('/_([0-9A-Z]+)$/',$filename,$matches))
バックアップファイルは常に''application/octet-stream''と...
~この仮説を間接的に確かめるために下記のことをして見てくだ...
++問題の起こったSJISファイルの拡張子をでたらめなものに置...
++上で大丈夫だったと言っていた''直接attach/[ファイル名]''...
--[[sha]] &new{2003-09-01 (MON) 21:38:36};
~%%そういえば、1.3.5のときは問題なかったんですよね。じゃ...
-[[sha]] &new{2003-09-01 (MON) 21:25:39};
~もひとつ疑わしいのは、607行目の''mb_convert_encoding''で...
--[[sha]] &new{2003-09-01 (MON) 21:35:29};
~これ↑はあんまり関係なさそう。。。
-[[sha]] &new{2003-09-01 (MON) 22:31:39};
~ちなみに、294行目の正規表現はたぶん以下のような感じなら...
if (!preg_match('/_([0-9A-Z]+)(?:\.\d+)?$/',$filename,$m...
-[[sha]] &new{2003-09-02 (TUE) 10:58:16};
~ちなみに、私はWindows XP Pro上ではApache2.0.46を使用して...
-[[ny]] &new{2003-09-02 (TUE) 13:33:52};
~仮説の検証を行ってみました。
++拡張子を.txtから何かに変えての添付->ダウンロードは、う...
++拡張子を何かから.txtへ変えてURLダウンロードは、うまくい...
++607行目のソース変更は、うまくいきませんでした。日本語フ...
~どこかでPukiWikiはApache 2.0.xには正式に対応していない、...
--[[reimy]] &new{2003-09-02 (TUE) 15:34:30};
~Apache 2.0.xが正式に対応していないのはPukiWikiではなくっ...
--[[sha]] &new{2003-09-02 (TUE) 19:34:01};
~私が最初にWindows XP Proにインストールしたときには、Apac...
-[[sha]] &new{2003-09-02 (TUE) 19:38:50};
~整理すると、i.の結果で、SJISファイルは、''text/plain''な...
-[[Komugi]] &new{2003-11-06 (THU) 10:18:15};
~これ、IIS5.0でも起きます。Shift-JISで書かれた.txt や .ht...
-[[とおが]] &new{2003-12-02 (TUE) 07:57:44};
~PHP 内部エンコーディング及び HTTP 出力エンコーディングを...
attach.inc.php:611
- @readfile($this->filename);
+ $fp = fopen($this->filename, 'rb');
+ or die_message('cannot read '.$this->filename);
+ $file = fread($fp, $this->size);
+ fclose($fp);
+ $enc = mb_detect_encoding($file);
+ mb_internal_encoding($enc);
+ mb_http_output($enc);
+ echo $file;
exit;
-[[ぱんだ]] &new{2003-12-03 (WED) 00:01:56};
~再現する環境が作れていないので当てずっぽうですが、単純に...
-[[Komugi]] &new{2003-12-03 (WED) 17:49:29};
~わたしの環境(IIS5.0+PHP4.3.3)で試したところ、~
1.mb_http_output('pass')を挿入する(それ以外は変更なし)
⇒Shift-JISのテキストは正しく表示される
⇒EUC-JPのテキストが表示されない(何も出力されない)
2.とおがさんのコメント通りにattach.inc.phpを変更してみる
⇒Shift-JIS、EUC-JPとも、2回出力されてしまう
('あいうえお'というテキストが、'あいうえおあいうえ...
3.とおがさんのコードから、最後の echo $file; を削除して...
⇒Shift-JIS、EUC-JPの両方とも、正常に表示されるようにな...
という結果になりました(echo $file は何か別の意図で入れら...
とりあえずうまくいったので、手元の環境では当面これで運用...
-[[とおが]] &new{2003-12-03 (WED) 22:12:30};
~readfile の行頭の "-" は削除の意だったのですが、勿論 ech...
header('Content-Type: '.$this->type);
+ mb_http_output('pass')
@readfile($this->filename)
です。
--ここでの文字化けは http_output = EUC-JP 指定によるもの...
--http_output の変換を無効にする為 mb_http_output('pass')...
--http_output の変換を無効にしているので、header('Content...
--pukiwiki の出力に限って云えば、skin で charset を含む m...
--PHP 全体の設定を変えられない(default_charset = "EUC-JP"...
+ //ini_set('default_mimetype', $this->type);
+ ini_set('default_charset', '');
header('Content-Type: '.$this->type);
+ mb_http_output('pass');
@readfile($this->filename);
--まだ環境依存のとこで真の原因が判明してませんので、人柱...
--[[とおが]] あんまりなボケなので修正 &new{2003-12-06 (SA...
-[[Komugi]] &new{2003-12-04 (THU) 09:10:17};
~失礼しました。"-"が削除の事だとわかっていたのですが、ぱ...
-[[ぱんだ]] &new{2003-12-04 (THU) 13:29:55};
~mb_http_output()は関係ない(readfileの出力には関与しない)...
header('Content-Length: '.$this->size);
+ ini_set('default_charset','');
header('Content-Type: '.$this->type);
@readfile($this->filename);
として、Content-Typeヘッダに余計な情報が入らないように対...
-[[とおが]] &new{2003-12-06 (SAT) 00:14:28};
~何故 default_charset を空にする方向に頭が働かなかったん...
~それから mb_http_output の件、[[PHPマニュアルの注記:http...
--[[ぱんだ]] &new{2003-12-06 (SAT) 14:01:20};
~貴重な情報ありがとうございます。mb_http_output('pass')も...
--- 1.4.3以降のパッケージに、修正済のファイルが収録
//#comment
終了行:
**[[質問箱/236]] [#tcbecb59]
|RIGHT:70|LEFT:410|c
|~カテゴリ||
|~サマリ|SJISテキストファイルのダウンロードで文字化け|
|~バージョン|1.4|
|~投稿者|[[ny]]|
|~状態|完了|
|~投稿日|&new{2003-08-08 (FRI) 11:30:57};|
***質問 [#d97621b5]
SHIFT-JISで記述したテキストファイルを添付して、ダウンロー...
IEで閲覧してファイル名をクリックすると、やけに時間がかか...
attachフォルダ内のファイルを直接覗いてみると正しく表示さ...
同じファイルをEUCで保存してアップロードしたら、特に問題な...
MIMEの設定がまずいのかとも思ったのですが、PukiWikiで添付...
以前1.3.5を使用していたときは問題なくダウンロードできてい...
:環境|
-Windows 2000 SP3
-Apache/1.3.28 (Win32) PHP/4.3.2
-PukiWIki 1.4rc3 EUCコードで運用
#br
よろしくお願いします。
:アップロードしたファイル|&ref(Sample.sjis.txt);
:ダウンロード後のファイル|&ref(Sample.sjis.txt.download);
***回答 [#k6380a13]
-[[sha]] &new{2003-08-09 (SAT) 16:13:03};
~状況が再現できません。ちなみに、上の「アップロードしたフ...
-[[ny]] &new{2003-08-11 (MON) 12:59:15};
~こちらのサーバでからは正常にダウンロードできますね。うち...
-[[merlin]] &new{2003-08-11 (MON) 13:38:16};
~linux系のサーバでは再現しませんねぇ。ダウンロード後のフ...
-[[sha]] &new{2003-08-11 (MON) 16:08:39};
~行き詰まったら現場へ戻れとも言いますので⌣、「[[Puk...
-[[ny]] &new{2003-08-27 (WED) 10:54:51};
~Windows向けのものやmbstringの設定も見直してみたのですが...
--[[sha]] &new{2003-08-27 (WED) 11:30:24};
~うーむ。なぞですね。そもそもダウンロードで、ファイルの中...
~同じサーバ上に、その問題のファイルへのリンクを張った単な...
~また、後半の「更新されない」現象はおそらく別の症状でして...
-[[ny]] &new{2003-09-01 (MON) 18:03:49};
~ご丁寧にありがとうございます。直接attach/[ファイル名]のU...
-[[ny]] &new{2003-09-01 (MON) 18:21:11};
~不思議な現象が・・・ テストで添付していたファイルを削除...
http://server/?plugin=attach&pcmd=open&file=file.txt&ref...
はOKで、
http://server/?plugin=attach&pcmd=open&file=file.txt&ref...
はNGという状況です。ファイル内容は同一です。
-[[sha]] &new{2003-09-01 (MON) 21:07:52};
~それは重要なヒントですね。この現象の違いはおそらく''atta...
if (!preg_match('/_([0-9A-Z]+)$/',$filename,$matches))
バックアップファイルは常に''application/octet-stream''と...
~この仮説を間接的に確かめるために下記のことをして見てくだ...
++問題の起こったSJISファイルの拡張子をでたらめなものに置...
++上で大丈夫だったと言っていた''直接attach/[ファイル名]''...
--[[sha]] &new{2003-09-01 (MON) 21:38:36};
~%%そういえば、1.3.5のときは問題なかったんですよね。じゃ...
-[[sha]] &new{2003-09-01 (MON) 21:25:39};
~もひとつ疑わしいのは、607行目の''mb_convert_encoding''で...
--[[sha]] &new{2003-09-01 (MON) 21:35:29};
~これ↑はあんまり関係なさそう。。。
-[[sha]] &new{2003-09-01 (MON) 22:31:39};
~ちなみに、294行目の正規表現はたぶん以下のような感じなら...
if (!preg_match('/_([0-9A-Z]+)(?:\.\d+)?$/',$filename,$m...
-[[sha]] &new{2003-09-02 (TUE) 10:58:16};
~ちなみに、私はWindows XP Pro上ではApache2.0.46を使用して...
-[[ny]] &new{2003-09-02 (TUE) 13:33:52};
~仮説の検証を行ってみました。
++拡張子を.txtから何かに変えての添付->ダウンロードは、う...
++拡張子を何かから.txtへ変えてURLダウンロードは、うまくい...
++607行目のソース変更は、うまくいきませんでした。日本語フ...
~どこかでPukiWikiはApache 2.0.xには正式に対応していない、...
--[[reimy]] &new{2003-09-02 (TUE) 15:34:30};
~Apache 2.0.xが正式に対応していないのはPukiWikiではなくっ...
--[[sha]] &new{2003-09-02 (TUE) 19:34:01};
~私が最初にWindows XP Proにインストールしたときには、Apac...
-[[sha]] &new{2003-09-02 (TUE) 19:38:50};
~整理すると、i.の結果で、SJISファイルは、''text/plain''な...
-[[Komugi]] &new{2003-11-06 (THU) 10:18:15};
~これ、IIS5.0でも起きます。Shift-JISで書かれた.txt や .ht...
-[[とおが]] &new{2003-12-02 (TUE) 07:57:44};
~PHP 内部エンコーディング及び HTTP 出力エンコーディングを...
attach.inc.php:611
- @readfile($this->filename);
+ $fp = fopen($this->filename, 'rb');
+ or die_message('cannot read '.$this->filename);
+ $file = fread($fp, $this->size);
+ fclose($fp);
+ $enc = mb_detect_encoding($file);
+ mb_internal_encoding($enc);
+ mb_http_output($enc);
+ echo $file;
exit;
-[[ぱんだ]] &new{2003-12-03 (WED) 00:01:56};
~再現する環境が作れていないので当てずっぽうですが、単純に...
-[[Komugi]] &new{2003-12-03 (WED) 17:49:29};
~わたしの環境(IIS5.0+PHP4.3.3)で試したところ、~
1.mb_http_output('pass')を挿入する(それ以外は変更なし)
⇒Shift-JISのテキストは正しく表示される
⇒EUC-JPのテキストが表示されない(何も出力されない)
2.とおがさんのコメント通りにattach.inc.phpを変更してみる
⇒Shift-JIS、EUC-JPとも、2回出力されてしまう
('あいうえお'というテキストが、'あいうえおあいうえ...
3.とおがさんのコードから、最後の echo $file; を削除して...
⇒Shift-JIS、EUC-JPの両方とも、正常に表示されるようにな...
という結果になりました(echo $file は何か別の意図で入れら...
とりあえずうまくいったので、手元の環境では当面これで運用...
-[[とおが]] &new{2003-12-03 (WED) 22:12:30};
~readfile の行頭の "-" は削除の意だったのですが、勿論 ech...
header('Content-Type: '.$this->type);
+ mb_http_output('pass')
@readfile($this->filename)
です。
--ここでの文字化けは http_output = EUC-JP 指定によるもの...
--http_output の変換を無効にする為 mb_http_output('pass')...
--http_output の変換を無効にしているので、header('Content...
--pukiwiki の出力に限って云えば、skin で charset を含む m...
--PHP 全体の設定を変えられない(default_charset = "EUC-JP"...
+ //ini_set('default_mimetype', $this->type);
+ ini_set('default_charset', '');
header('Content-Type: '.$this->type);
+ mb_http_output('pass');
@readfile($this->filename);
--まだ環境依存のとこで真の原因が判明してませんので、人柱...
--[[とおが]] あんまりなボケなので修正 &new{2003-12-06 (SA...
-[[Komugi]] &new{2003-12-04 (THU) 09:10:17};
~失礼しました。"-"が削除の事だとわかっていたのですが、ぱ...
-[[ぱんだ]] &new{2003-12-04 (THU) 13:29:55};
~mb_http_output()は関係ない(readfileの出力には関与しない)...
header('Content-Length: '.$this->size);
+ ini_set('default_charset','');
header('Content-Type: '.$this->type);
@readfile($this->filename);
として、Content-Typeヘッダに余計な情報が入らないように対...
-[[とおが]] &new{2003-12-06 (SAT) 00:14:28};
~何故 default_charset を空にする方向に頭が働かなかったん...
~それから mb_http_output の件、[[PHPマニュアルの注記:http...
--[[ぱんだ]] &new{2003-12-06 (SAT) 14:01:20};
~貴重な情報ありがとうございます。mb_http_output('pass')も...
--- 1.4.3以降のパッケージに、修正済のファイルが収録
//#comment
ページ名: