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


東京みやげ  2007-12-09 04:33:14  No: 67170

いつもお世話になっております。

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-09 05:03:05  No: 67171

VC++6.0→VC++2005で文字コード標準設定がMBCSからUNICODEになったけど
その辺かな?
TCHAR使ってるし


Akazaru  2007-12-12 22:57:48  No: 67172

ロケールの設定とかでしょうか?
::_tsetlocale(LC_ALL, _T("Jpn"));


ゴン  2007-12-28 23:46:46  No: 67173

そもそもメーラーの引数にUTF-16ってOKなんですか?


RAPT  URL  2007-12-29 00:22:21  No: 67174

これではどう?

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加