使用: Delphi XE2、デフォルト言語として米国英語を使用する Windows 8
Delphi で電子メール クライアントを作成しています。TIdIMAP4 を使用して IMAP 経由で GMail メールボックスに接続し、次のようなメッセージ リストを取得しています。
var
MessageList: TIdMessageCollection;
begin
IMAPClnt.SelectMailBox('INBOX');
IMAPClnt.UIDRetrieveAllEnvelopes(IMAPClnt.MessageList);
次に、次のようにメッセージの件名を取得しています。
var
IdMsg: TIdMessage;
s: String
begin
for c := 0 to FIMAPClnt.MessageList.Count - 1 do
begin
IdMsg := FIMAPClnt.MessageList[c];
s := IdMsg.Subject;
ただし、メッセージの件名が別の言語 (ヘブライ語など) の場合、Windows の既定の言語がヘブライ語に設定されているコンピューターでも、メッセージの件名が正しく表示されません (添付の画像を参照)。
正しい Unicode 文字で言語を取得して、正しく機能するようにコードを修正するにはどうすればよいですか?
画面キャプチャ:
ティア。