【发布时间】:2013-03-31 03:58:26
【问题描述】:
towlower() 函数似乎在 Visual Studio 2012 中不起作用。下面是一个示例:
#include <string>
#include <iostream>
#include <io.h>
#include <fcntl.h>
#include <wctype.h>
using namespace std;
int main()
{
_setmode(_fileno(stdout), _O_U8TEXT);
wcout << (wchar_t)towlower(L'Я') << endl;
system("pause");
return 0;
}
字符保持大写。以前在这里问过类似的问题,但我找不到任何解决方案。
我可以使用其他方法更改为小写吗?
【问题讨论】:
-
We close all typo questions, 顺便说一句。
-
什么意思?没有错字。
-
您需要手动设置语言环境,因为 C++ 默认使用不变的 C 语言环境,无论如何。不过,我不知道 Windows 上安装了哪些 Unicode 语言环境。
-
@jalf:你不觉得“过于本地化”只是一个双关语吗?
-
@CodyGray 平台很重要。例如,语言环境在不同的平台上有不同的名称,这是一个相关的细节。
标签: c++ unicode locale lowercase wchar-t