unicode转多字节字符

wcstombs()当第一个参数为空时,返回存储结果字符串需要的字节数

支持中文转换需要在调用之前加入语句 :setlocale(LC_ALL,"");

完成之后调用:setlocale(LC_ALL,"C");

示例代码如下:

char * wchar2char(const wchar_t *wch)
    {
        assert(wch != NULL);

        size_t size = wcstombs(NULL, wch, 0) + 1;
        char *ch = new(std::nothrow) char[size];
        if (NULL == ch)
        {
            return NULL;
        }

        if (wcstombs(ch, wch, size))
        {
            return ch;
        }

        return NULL;
    }


 


 

你可能感兴趣的:(c++)