解决 StringCchPrintfW 多字节转宽字符 中文乱码

2019-12-08  本文已影响0人  星星之火666

第一部分

#include <windows.h>
#include<strsafe.h>
#include<locale.h>

int main()
{
    wchar_t sz[200] = L"";

    // 设置 为 当前 操作系统 的 默认 地域设置
    //setlocale(LC_CTYPE, "");

    StringCchPrintfW(sz, _countof(sz), L"ANSI:%S\nUnicode:%s", "I am 中国人 I am very 骄傲", L"我是 Chinese\n");

    MessageBoxW(0, sz, 0, 0);

    return 0;
}

第二部分

#include <windows.h>
#include<strsafe.h>
#include<locale.h>

int main()
{
    wchar_t sz[200] = L"";

    // 设置 为 当前 操作系统 的 默认 地域设置
    setlocale(LC_CTYPE, "");

    StringCchPrintfW(sz, _countof(sz), L"ANSI:%S\nUnicode:%s", "I am 中国人 I am very 骄傲", L"我是 Chinese\n");

    MessageBoxW(0, sz, 0, 0);

    return 0;
}

第三部分

    // 设置 为 当前 操作系统 的 默认 地域设置
    setlocale(LC_CTYPE, "");
上一篇 下一篇

猜你喜欢

热点阅读