えっと、メールの受信プログラムをVB6で作ってます。
そこで、わからなくなっちゃったんですが、メールのヘッダの
件名の部分に下記のように書いてありました。
Subject: PlayStation.com =?ISO-2022-JP?B?GyRCJGgkaiEnGyhC?= PS2
=?ISO-2022-JP?B?GyRCIVglJCE8JTkbKEI=?= - =?ISO-2022-JP?B?GyRCJUobKEI=?=
=?ISO-2022-JP?B?GyRCJVQlNyVlJUYlYCROUjobKEI=?= -
=?ISO-2022-JP?B?GyRCREw+b0hHGyhC?= (=?ISO-2022-JP?B?GyRCPWkycxsoQg==?=
=?ISO-2022-JP?B?GyRCQDg7OkhHGyhC?=) =?ISO-2022-JP?B?GyRCIVlGQ0A9GyhC?=
CD =?ISO-2022-JP?B?GyRCRjE6LRsoQg==?=
これを、日本人が読めるようにするにはどうしたらよいのでしょうか?@@
ISO-2022-JP???BASE64???
さっぱりですε-(ーдー)ハァ
とりあえず、文字コード
http://www.google.co.jp/search?hl=ja&q=ISO-2022-JP&lr=
で、参考になるか分からないけど、メールヘッダのフォーマット
http://www.google.co.jp/search?hl=ja&q=%E3%83%A1%E3%83%BC%E3%83%AB%E3%83%98%E3%83%83%E3%83%80%E3%80%80%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88&lr=
返信ありがとうございます。
=?ISO-2022-JP?B?GyRCJGgkaiEnGyhC?=
この部分でいう文字のコードは
ISO-2022-JPでBASE64で書かれているってことはわかるんです。
ただデータ部の「GyRCJGgkaiEnGyhC」をどうやってデコードするのかがよくわかりません。いろいろググってみましたが、.NETでのデコード方法は書いてあってもVB6での方法が書いてありません。
宜しくお願いしますm(_ _)m
>いろいろググってみましたが、.NETでのデコード方法は書いてあってもVB6での方法が書いてありません。
そぉ?
http://www.google.co.jp/search?hl=ja&c2coff=1&q=VB6+%E5%A4%89%E6%8F%9B%E3%80%80ISO-2022-JP&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
全く同じ検索フレーズで探しました。その他のフレーズも…
某UsersGroupページのも見ました。あれではよくわかりません;;
だからここに書いたんです..............( _ _)σ イジイジ
無知ですみませんm(_ _)m
漠然すぎます。どのURLを参考にして、その中のどのフレーズが
理解できなかったのかを、もっと明確にしてください。
(わからない単語や、理解できないコードなどを具体的に示してください)
そちらの理解度を示してもらわないと、せっかくURLを提示したり、
説明文を並び立てても、「やっぱりわかりません」という一言で
片付けられてしまいそうで、答えるのを躊躇ってしまいます。
> 件名の部分に下記のように書いてありました。
PlayStation.com より: PS2 『イース - ナピシュテムの匣 - 通常版 (初回生産版) 』特製 CD 同梱
まず、Subjectなどの『=?ISO-2022-JP?B?GyRCJGgkaiEnGyhC?=』とは、
『=?(文字コード)?(エンコード方法)?(データ)?=』
という形式をとっています。
この点までは理解されていますでしょうか?
そして、今回の文字コードは、"ISO-2022-JP"という物です。
VB6からは ADODB.Stream などを使って、文字列を
ISO-2022-JPのバイナリに変換したり、あるいは逆に
ISO-2022-JPのバイナリを文字列に戻したりできます。
続く "B" は、『BASE64』という形式にて、バイナリを
テキストデータに変換しているという意味です。
『BASE64』の変換規則については、下記を見てください。
http://www.sea-bird.org/doc/Cygwin/BASE64enc.html
http://www.kumei.ne.jp/c_lang/sdk3/sdk_235.htm
これを踏まえて、元のデータを見てみましょう。
まず、
『=?ISO-2022-JP?B?GyRCJGgkaiEnGyhC?=』
のデータ部 "GyRCJGgkaiEnGyhC" は、
BASE64にてデコード(復元)すると、
1B 24 42 24 68 24 6A 21 27 1B 28 42
という、12バイトのバイナリになります。
このバイナリを、ISO-2022-JP形式とみなして文字列にすると、
『より:』
という 3文字 になるというわけです。
あとはこれらを、頑張って VB6 のコードに置き換えてみてください。
ツイート | ![]() |