多字节字符串<===>宽字符串

LONG WideCharToMultiByteEx(const CStringW &StrFrom, CStringA &StrTo, UINT PageCode)
{
    if (LONG nBytes = WideCharToMultiByte(PageCode, 0, StrFrom, StrFrom.GetLength(), NULL, 0, NULL, NULL))
    {
        return WideCharToMultiByte(PageCode, 0, StrFrom, StrFrom.GetLength(), StrTo.GetBufferSetLength(nBytes), nBytes, NULL, NULL);
    }
    return 0;
}

LONG MultiByteToWideCharEx(const CStringA &StrFrom, CStringW &StrTo, UINT PageCode)
{
    if (LONG nCount = MultiByteToWideChar(PageCode, 0, StrFrom, StrFrom.GetLength(), NULL, 0))
    {
        return MultiByteToWideChar(PageCode, 0, StrFrom, StrFrom.GetLength(), StrTo.GetBufferSetLength(nCount), nCount);
    }
    return 0;
}

PageCode参数的作用
1.CHAR到WCHAR时表示CHAR的字符编码是什么
2.WCHAR到CHAR时表示转换为什么样的字符编码到CHAR中

我们一般所说的ANSI是GB2312, 中文简体, PageCode是936

你可能感兴趣的:(unicode,gb2312,ansi)