проблема с кодировкой при импорте из базы данных
wchar_t buff[100];
for (result::const_iterator c = R.begin(); c != R.end(); ++c) {
swprintf(buff, 100, L"Имя: %s - %s",Helper::ConvertStringToWstring(c[1].c_str()).c_str(), Helper::ConvertUtf8ToWide(c[2].c_str()).c_str());
gt->DrawString(
buff,
-1,
&myFont,
origin,
&sf,
&blackBrush);
origin.Y += 30;
}
static std::wstring ConvertStringToWstring(const std::string& str)
{
if (str.empty())
{
return std::wstring();
}
int num_chars = MultiByteToWideChar(CP_ACP, MB_ERR_INVALID_CHARS, str.c_str(), str.length(), NULL, 0);
std::wstring wstrTo;
if (num_chars)
{
wstrTo.resize(num_chars);
if (MultiByteToWideChar(CP_ACP, MB_ERR_INVALID_CHARS, str.c_str(), str.length(), &wstrTo[0], num_chars))
{
return wstrTo;
}
}
return std::wstring();
}
При подключении использую кодировку client_encoding=WIN866. При выводе в консоль работает все хорошо, но не может нормально вывестись в DrawString.