電子書籍の厳選無料作品が豊富!

メールのSubjectを取得するスクリプトを作っています。
Subjectを取得し、iso-2022をsjisに変換して表示したいのですが、変換できません。
以下、どこに問題ありますでしょうか?
すみません、他人の作ったものを修正しているので、よく理解していない部分が多いです。

#---------------------------------------------
require 'jcode.pl';
$subject = 'Subject: =?iso-2022-jp?B?GyRCJWEhPCVrJE4lRiU5JUgbKEI=?=';
&jcode'convert(*subject, 'sjis');
print "-->$subject\n";
#---------------------------------------------

これをWindowsのDOSプロンプトから実行しても、以下のようにShift-JISに変換されていません。

c:\test>perl test.pl
-->Subject: =?iso-2022-jp?B?GyRCJWEhPCVrJE4lRiU5JUgbKEI=?=

環境
Perl v5.8.8
WindowsXP(sp2)

以上、よろしくお願いします。

A 回答 (1件)

「=?iso-2022-jp?B…?=」の部分は、MIME の B encoding です。


まずばMIMEの復号を行ってから、その後dえ感じコードの変換処理を行う必要があります。

jcode.plを使うような旧式な記述方式であれば、
---
require 'mimer.pl';
require 'jcode.pl';
$subject = 'Subject: =?iso-2022-jp?B?GyRCJWEhPCVrJE4lRiU5JUgbKEI=?=';
$subject = &mimedecode($subject);
&jcode'convert(*subject, 'sjis');
print "-->$subject\n";
---
とすれば、MIME をデコードしたShift JIS 文字列の取得ができます。
    • good
    • 0
この回答へのお礼

ありがとうございます。
mimer.plを入手して試したところ、2バイトコードが表示されるようになりました。
助かりました。

お礼日時:2008/11/25 15:16

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