プロが教える店舗&オフィスのセキュリティ対策術

VB6.0 でメールソフトを作っているのですが、受信したメールのヘッダで Subject 部分を見ると、

Subject: =?ISO-2022-JP?B?GyRCJCIkJCQmJCgkKhsoQg==?=

と訳の分からないアルファベットになってしまっています。
この Subject を日本語にする方法を教えてください。

一応、Base64のデコードという方法を知りましたが、この処理をVBで実行する場合のコードが分かりません。
工程的には下記の通りかと…

サブジェクトの文字列から「?ISO-2022-JP?B?」の文字列の次のから「?=」までの間の文字列を抽出し、

GyRCJCIkJCQmJCgkKhsoQg== をネタに下記の処理。

1.各文字を2進数表記(6ビット単位)に変換(RFC 2045の Table 1 を使う)。
2.2進文字列(6ビット単位)を8ビット単位でまとめる。
3.8ビット単位の2進数をASCIIコードに変換。
4.シフトJISに変換。

ちなみに、この Subject の答えは あいうえお です。

分かる方、VBコードを教えてください。

A 回答 (1件)

こんばんは。



最近の同じような質問が出ていましたが、もしも、単独で変換エンジンを作るとなると意味が違うかもしれませんね。一応、以下のBasp21 の オブジェクトからBase64 デコードは出来ますが、確か、個別のDLLがあったと思いますから、それが使えれば、それに越したことはありませんね。

例:
Dim myString As String
myString = "Subject: =?ISO-2022-JP?B?GyRCJCIkJCQmJCgkKhsoQg==?="

Dim bobj As Basp21
Dim buf As String
Set bobj = New Basp21

buf = bobj.Base64(myString, 3)

参考URL:http://www.hi-ho.ne.jp/babaq/basp21.html#0039
    • good
    • 1
この回答へのお礼

こんばんわ。

ありがとうございます!

単独で変換エンジン誰か作ってないかな~という他力本願で質問してました(汗)
Basp21は初耳でした。世の中、ライセンスフリーでいいものあるもんですね~。
上記のコードでBase64 デコード出来ました。
どうもありがとうございました。

お礼日時:2006/02/10 22:38

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