- 721 名前:708 mailto:sage [2011/06/09(木) 20:15:13.87 ]
- >>716
レスどもです。 必要事項は自前でこなせてますので、蛇足的な書込みになりますが、結果を 書込んでおきます。(何方かの役に立つかもしれませんから) IdTCPでストリーム受信したところ(TCPでは文字コード問題は無い筈ですよね?) サーバーは Apache で、ブラウザ向けリクエスト "User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows NT)" を送ると、"Content-Disposition" に含まれる 日本語 filename は ダブルクォート「"」で囲まれた上で、Shift-JISになり、"User-Agent"無し では、同様に「"」で囲まれた上で UTF-8 でした。 勿論、この動作はサーバーの設定次第だと思いますので、全てが必ずこうだとは 言えません。ただ、たまたま今回相手にするサーバーがこうだったというだけです。 RFCに書かれていたファイルネームについては、「"」を伴わない形でのASCIIコード のみだった気がしますが(未確認)。 多分 Apache では、メーラー等で用いられてるヘッダーのように、拡大解釈されて RFC2231 を用いずに「"」で括って、そのまま漢字コードを使用してるんじゃない でしょうか? それとも、改定案が出されてて、それに IdHTTPが対応してないとか。 ちなみに、IdHTTPで取得されたfilenameは、どう変換したのかも分からないコードに なっており、途中の漢字に含まれるコードで全ヘッダ終了とみなされて、それ以降の ヘッダは無いものとして処理されてしまいます。 ソースを追えば良いんですが・・・面倒なのでヤメマシタ。 IdTCP->IOHandler->ReadLn で読んだ時点で化けてるので、その辺なんですが、TCPでも、 HTTPでも同じクラス、かつ、多言語でとなると、やはりRFC完全準拠が筋だと痛感。
|

|