wchar_t *str = L"文字列";
std::string result;
char* buffer = 0;
int len = WideCharToMultiByte(CP_THREAD_ACP, 0, str, -1, buffer, 0, NULL, NULL);
if (len > 0){
buffer = new char[len + 1];
memset(buffer, 0, len + 1);
WideCharToMultiByte(CP_THREAD_ACP, 0, str, -1, buffer, len, NULL, NULL);
result = buffer;
if (buffer) delete[] buffer;
}
printf("変換後:%s\n", result.c_str());
MultiByteToWideCharとWideCharToMultiByteの第1引数について
MultiByteToWideCharとWideCharToMultiByteの第1引数について
MultiByteToWideCharとWideCharToMultiByteの第1引数はコンソール画面の場合第1引数にCP_THREAD_ACPを渡さないと文字化けが起こります。
知恵袋ノートにも書いてあります。
最後に編集したユーザー naohiro19 on 2015年7月10日(金) 19:50 [ 編集 2 回目 ]
Re: MultiByteToWideCharとWideCharToMultiByteの第1引数について
コマンドプロンプトのデフォルトのコードページ(932)を前提にした話ですよね。
コマンドプロンプトのコードページを変更できることはご存知ですか。
コマンドプロンプトのコードページを変更できることはご存知ですか。