如何在C中支持中文/日文字符的UCS-2?

时间:2015-07-09 07:58:14

标签: cjk wchar-t

我试图通过编写一个简单的控制台程序来理解wchar_t在C中是如何工作的,也许它并不像我最初想的那么简单。

问题在于:

当我尝试使用wscanf获取一串字符时,它可以正常工作。

// Code 1
wchar_t wstr[10];
wprintf(L"Enter string: ");
wscanf(L"%ls", wstr);
wprintf(L"You have entered: %ls\n", wstr);

输出:     输入字符:煮
    你输入了:煮
    按任意键继续 。 。

这是可以预料的。但是如果我尝试获得单个字符(wchar),它就会失败:

// Code 2
wchar_t wstr[10];
wprintf(L"Enter character: ");
wscanf(L"%lc", wstr); wstr[1] = L'\0';
wprintf(L"You have entered: %lc\n", wstr[0]);

输出:     输入字符:煮
    您已输入:·
    按任意键继续 。 。

我的系统区域设置目前设置为日语(日本)。有没有人经历过这个?

0 个答案:

没有答案