【问题标题】:Converting MBCS stream to UTF-8 and vice versa in C++在 C++ 中将 MBCS 流转换为 UTF-8,反之亦然
【发布时间】:2010-09-27 08:21:29
【问题描述】:

我正在使用 Visual C++ (VS2005) 并以多字节字符集 (MBCS) 编译项目。但是,程序需要通过 XMLRPC 与 webapp(utf-8 格式)进行通信。所以我在想也许我可以在内部使用 MBCS 并将字符串转换为 utf-8,然后再将它们发送到 xmlrpc 模块并在从 webapi 接收后将它们转换回 MBCS。

我想知道在 VC++ 中在 MBCS 和 UTF-8 之间进行转换的最佳方式是什么?

谢谢大家。

【问题讨论】:

    标签: c++ encoding utf-8 mbcs


    【解决方案1】:

    调用 MultiByteToWideChar 将您的字符串转换为 unicode,然后调用 WideCharToMultiByte 将 unicode 转换为 UTF-8。逆向走另一条路,

    【讨论】:

      【解决方案2】:

      你可以试试wcstombs / mbstowcs

      【讨论】:

        【解决方案3】:

        您也可以使用 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.
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-06-28
          • 1970-01-01
          • 2010-11-26
          相关资源
          最近更新 更多