Я использую Visual C++ (VS2005) и компилирую проект в многобайтовом наборе символов (MBCS). Однако программе необходимо взаимодействовать с веб-приложением (которое находится в utf-8) через XMLRPC. Итак, я думаю, что, может быть, я могу использовать MBCS внутри и преобразовать строки в utf-8, прежде чем отправлять их в модуль xmlrpc и преобразовывать их обратно в MBCS после получения из webapi.
Мне интересно, как лучше всего конвертировать между MBCS и UTF-8 в VC++?
Спасибо всем.





Вызовите MultiByteToWideChar, чтобы преобразовать вашу строку в Unicode, а затем вызовите WideCharToMultiByte, чтобы преобразовать Unicode в UTF-8. Измените процесс, чтобы пойти другим путем,
Вы также можете использовать CT2A и передать CP_UTF8 в качестве кодовой страницы, например:
CT2A pszUTF8(_T("My DBCS string"), CP_UTF8);
// pszUTF8.m_psz contains the UTF8 string.
Чтобы вернуться снова:
CA2T pszT(_T("My UTF8 string"), CP_UTF8);
// pszT.m_psz contains the TCHAR string.