CGIファイルダウンロードで特定文字でファイル名が化ける

[上に] [前に] [次に]
PTAN [E-Mail] 1999/12/13(月) 17:09:29
Win95 IE4,5環境において...
以下のPerlのCGIスクリプト(SJIS)ではファイル名「ああああ.xxx」で
保存ダイアログが表示されるのですが、「表.xxx」にすると、ファイル
名が化けてしまいます。回避方法はありますでしょうか?
#IE5では「いつもUTF-8として...」のチェックははずしています
#イントラなので、UNIXで化けるのは構いません。
========
#!/usr/local/bin/perl
$|=1;
print << "EOF";
Content-Type: text/xxx
Content-Disposition: attachment; filename=ああああ.xxx

111111

EOF
========

B-Cus 1999/12/13(月) 17:20:13
URL エンコードして %95%5C.xxx とか。

PTAN 1999/12/13(月) 17:30:02
> URL エンコードして %95%5C.xxx とか。
駄目でした...
そのままファイル名が「%95%5C.xxx」になります。

B-Cus 1999/12/13(月) 17:31:14
あら、失礼。ダメでしたか。

試してませんが、表の2バイト目の\が原因だろうから、
 Content-Disposition: attachment; filename=表\.xxx
とするか、JIS か EUC で書けばいけそうな気も。

PTAN 1999/12/13(月) 17:45:58
度々すいません。

> 試してませんが、表の2バイト目の\が原因だろうから、

ですね。「噂」(895c)も駄目でした。

>  Content-Disposition: attachment; filename=表\.xxx

これも化けます。

> とするか、JIS か EUC で書けばいけそうな気も。

IEは本文に関係なく、Content-Dispositionヘッダは必ず
SJIS(もしくはUNICODE?)で解釈するようで、JIS、EUCでは
化けます。

B-Cus 1999/12/13(月) 17:57:17
う〜ん、なんかどんどん遠ざかっている気もするけど、UNICODE で
 \u8868.xxx (表.xxx)
 \u5642.xxx (噂.xxx)
では?

ふじ 1999/12/13(月) 18:04:59
>print << "EOF";
print <<'EOF';

ではだめですか?

PTAN 1999/12/13(月) 18:27:20
> う〜ん、なんかどんどん遠ざかっている気もするけど、UNICODE で
>  \u8868.xxx (表.xxx)
>  \u5642.xxx (噂.xxx)

IE5で「いつもUTF-8として...」をチェックすればOKなのですが、
できればIE4で動かしたいもので....;

> print <<'EOF';
> ではだめですか?

これはだめでした。telnetでhttpdにアクセスして、クライアントまで
は"表.xxx"で来ていることは確認できています。

P初心者 1999/12/13(月) 18:51:05
ネスケ4.5でも同じ現象でしたが、
ふじさんのprint <<'EOF';で上手く行きました!
でも、IE4はダメですねぇ!
わかりません!

B-Cus 1999/12/13(月) 19:00:49
たぶんこんなんじゃ無理だろうなと思いつつ、最後の悪あがきを。
 1. \ をもう一つ余分に付ける。'表\\\.xxx'。
 2. filename="…" などと、ファイル名を "" で囲む。
ダメだったらレスは不要です。

P初心者 1999/12/13(月) 19:15:16
ネスケ4.5でも同じ現象でしたが、
ふじさんのprint <<'EOF';で上手く行きました!
でも、IE4はダメですねぇ!
わかりません!

PTAN 1999/12/15(水) 19:40:10
いろいろ調べてはみたのですが、やはり無理くさいですね。
結局、Unicodeで送るしかないか...IE5しか対応してないけど...

moci 1999/12/15(水) 20:06:53
メールでは時々Content-Dispositionのファイル名が
MIMEエンコードされていることがあるようです。

# デコードできないメーラではファイル名がiso2022とかになる

逆に、IEはMIMEエンコードされていることを期待しているなどと
いうことはないでしょうか。

PTAN 1999/12/15(水) 21:45:05
> 逆に、IEはMIMEエンコードされていることを期待しているなどと
> いうことはないでしょうか。

これも試してみましたが、(デコードされず)そのままファイル名
になってくれます...;;

PTAN 2000/01/14(金) 15:20:50
http://www.microsoft.com/japan/support/kb/articles/j050/8/65.htm
にバグとして、載っていました。IE5.01にしろということだそうです。
それにしても、最終更新日が1999/11/29になってるけど、12月半ばに
探した時は無かったんだけど...?????

[上に] [前に] [次に]