我正在使用 Visual C++ (VS2005) 并以多字节字符集 (MBCS) 编译项目。但是,程序需要通过 XMLRPC 与 webapp(utf-8 格式)进行通信。所以我在想也许我可以在内部使用 MBCS 并将字符串转换为 utf-8,然后再将它们发送到 xmlrpc 模块并在从 webapi 接收后将它们转换回 MBCS。
我想知道在 VC++ 中转换 MBCS 和 UTF-8 的最佳方式是什么?
谢谢大家。
调用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.