プロが教えるわが家の防犯対策術!

よろしくお願いいたします。
メーラー(Becky!やALMAIL等)によっては、RFC2231形式で添付ファイル名をエンコードして送信していますが、RFC2231形式で送信された添付ファイル名をデコードする方法をご教授いただきたく。

下記の@ITで紹介された記事によるとRFC2231形式は%の後ろ2文字の16進数がエンコードされた文字コードであるとなっています。
http://www.atmarkit.co.jp/fnetwork/rensai/netpro …

しかし、Becky!等のメーラーでは、下記の【】内のように、%の間が2文字以上の場合や、ASCII文字列は直接埋め込まれてしまうパターンがあります。
【filename*=iso-2022-jp''%1B%24B%24%5B%242%24%5B%242%1B%28B%2Etxt】→元は【ほげほげ.txt】

ASCII文字列が直接埋め込まれている部分は何とかなるとして、%24B%のような部分はどのようにデコードするのでしょうか?
もしかしてBはBASE64?

A 回答 (2件)

「% + 16進2桁」を 1つの文字に変換してください.


例えば
%1B%24B%24%5B%242%24%5B%242%1B%28B%2Etxt
だと「%1B」「%24」B「%24」「%5B」「%24」2「%24」「%5B」「%24」2「%1B」「%28」B「%2E」txt
のように区切って, それぞれを変換することになります.
ESC-$-B-$-[-$-2-$-[-$-2-ESC-(-B-.-txt
となり, これは最初の「ESC-$-B」のシーケンスから ISO-2022-JP であることがわかるのでさらにデコードすると「ほげほげ.txt」となります.
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
ストライクの回答でした。
%の後ろ2文字を16進数から10進数に変換。それより後の文字はアスキーコードに変換。その後全てを連結して指定された文字コードでデコードすると元の文字列に復元することができました。

お礼日時:2008/05/15 09:04

>【filename*=iso-2022-jp''%1B%24B%24%5B%242%24%5B%242%1B%28B%2Etxt】→元は【ほげほげ.txt】



「%1B%24B, %24%5B%242, %24%5B%242, %1B%28B」なので、それが正解だと思いますが・・

  http://www.emaillab.org/essay/japanese-filename. …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
参考URLは知っていたのですが、エンコードについては触れられていないみたいでした。
RFC2231にも目は通したのですが、欲しい情報は載っていなかったです。
メールのエンコードは煩雑なので、早く統一されて欲しいものです。

お礼日時:2008/05/15 09:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!