C++ MFC std::string转为 std::wstring

std::string转为 std::wstring

std::wstring UTF8_To_UTF16(const std::string& source)
{
    unsigned long len = ::MultiByteToWideChar(CP_UTF8, NULL, source.c_str(), -1, NULL, NULL);    //::表示全局函数 不加:: 默认先调用类中的同名函数
    if(len == 0)
        return std::wstring();
    wchar_t *buffer = new wchar_t[len];
    ::MultiByteToWideChar(CP_UTF8, NULL, source.c_str(), -1, buffer, len);   

    std::wstring dest(buffer);
    delete[] buffer;
    return dest;
} 


std::wstring转为 std::string

std::string UTF16_To_UTF8(const std::wstring& source)
{
    unsigned long len = ::WideCharToMultiByte(CP_UTF8, NULL, source.c_str(), -1, NULL, NULL, NULL, NULL); //::表示全局
    if(0 == len)
    {
        return std::string();
    }

    char* buffer = new char[len];
    ::WideCharToMultiByte(CP_UTF8, NULL, source.c_str(), -1, buffer, len, NULL, NULL);
    std::string dest(buffer);
    delete[] buffer;
    return dest;

}
原文地址:https://www.cnblogs.com/ransn/p/8036092.html