いつもお世話になっております。
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);
どなたかヒントがあればご教授下さい。
VC++6.0→VC++2005で文字コード標準設定がMBCSからUNICODEになったけど
その辺かな?
TCHAR使ってるし
ロケールの設定とかでしょうか?
::_tsetlocale(LC_ALL, _T("Jpn"));
そもそもメーラーの引数にUTF-16ってOKなんですか?
これではどう?
CStringA string;
string = "mailto:";
string += "?subject=";
string += "あいうえお";
string += "&body=ABCDE";
ShellExecuteA(NULL, "open", string, NULL, NULL, SW_SHOWNORMAL);
ツイート | ![]() |