元Delphi大好きことRAD命です。
環境は、WinXP、C++BuilderXE2スターターです。
以下のページを参考にして、メールソフトをC++Builderで作っているのですが、タイトルが文字化けします。
http://www.gesource.jp/programming/bcb/58.html
色々調べて変換等してみたのですが、駄目でした。
最新版Builderはユニコード、MemoやIndyはAnsiという事までは判ったのですが…。
因みに、本文は文字化けしていません。メールタイトルだけが文字化けしています。
以下コードです。
Memo1->Lines->Text = msg->Body->Text;
msg->CharSet = 'read';
msg->Encoding = meMIME;
UTF8String utf8 = msg->Subject;
AnsiString ansi = utf8; //自動的にUTF-8に変換
Memo2->Lines->Text = ansi;
何が文字化けの原因なのでしょうか?
どなたかお教えいただけると助かります。
それではよろしくお願いしますm(__)m。
追記です。
Subjectのフォーマットは、 ?ISO-2022-JP?B?
Indyのヴァージョンは、10.5.8.0
です。
それではよろしくお願いしますm(__)m。
> MemoやIndyはAnsi
Memo も Indy も Unicode ですよ。
> 何が文字化けの原因なのでしょうか?
[Indy 10 を使って GMail を送受信するには? (Delphi 2009 以降)]
http://ht-deko.minim.ne.jp/tech040.html#tech076
TIdMessage.OnInitializeISO を処理し、
・Subject も Body も UTF-8 にする
・Subject も Body もトランスファエンコーディングに BASE64 を指定する
これをやってみて下さい。
先述のリンク先のコードは Delphi のものですが、
山本隆さんのブログには相当する C++Builder のコードがあります。
(ご提示頂いたサイトを運営されている方のブログです)
[C++Builder XEのIndy10のメール送信の動作がおかしい(Delphi XEのIndy10は問題ない)]
http://www.gesource.jp/weblog/?p=4507
最近、あっちこっちで文字コード関連の質問が多いようですが、
以下のリンク先にある資料を読みあされば大抵の事は解決すると思います。
[RAD Studio マイグレーションセンター]
http://www.embarcadero.com/jp/rad-in-action/migration-upgrade-center
DEKOさんありがとうございます、無事解決しました。
[C++Builder XEのIndy10のメール送信の動作がおかしい(Delphi XEのIndy10は問題ない)]
が、そのものずばりでした。
まだCBuilderに慣れてなく、色々四苦八苦しましたが、勉強にもなりました。
これで後は普通に組んでいくだけです。
今回も大変ありがとうございましたm(__)m。
スミマセン。メール送信ではなく、メール受信の話でしたね。
# OnInitializeISO の話は忘れて下さい。
ツイート | ![]() |