■ ShellExecuteのメーラー起動で文字化けします

[Visual C++ Q & A 掲示板] [過去ログの一覧]


東京みやげ 2007/12/08(土) 19:33:14 <中級者>
いつもお世話になっております。

Vistaで下記コードを実行すると、ダブルバイト(あいうえお)が文字化けしてしまいます。XP+VC6では問題なく動作していましたが、Vista+VC2005で非互換になってしまいました。

CString string;
string  = _T("mailto:");
string += _T("?subject=");
string += _T("あいうえお");
string += _T("&body=ABCDE");
ShellExecute(NULL, _T("open"), string, NULL, NULL, SW_SHOWNORMAL);

どなたかヒントがあればご教授下さい。

通りすがり 2007/12/08(土) 20:03:05
VC++6.0→VC++2005で文字コード標準設定がMBCSからUNICODEになったけど
その辺かな?
TCHAR使ってるし

Akazaru 2007/12/12(水) 13:57:48 <中級者>
ロケールの設定とかでしょうか?
::_tsetlocale(LC_ALL, _T("Jpn"));

ゴン 2007/12/28(金) 14:46:46
そもそもメーラーの引数にUTF-16ってOKなんですか?

RAPT [HomePage] 2007/12/28(金) 15:22:21
これではどう?

CStringA string;
string  = "mailto:";
string += "?subject=";
string += "あいうえお";
string += "&body=ABCDE";
ShellExecuteA(NULL, "open", string, NULL, NULL, SW_SHOWNORMAL);

毎週金曜日はポイント最大3倍!さらに4倍のチャンスも!

Programming Library