无法将特定字符打印到控制台应用程序

时间:2015-01-13 05:37:22

标签: visual-c++ character-encoding console-application

即使我使用SetConsoleOutput(1252),我也似乎无法将特定字符打印到控制台(Win32控制台应用程序)。我也尝试过更改'locale'以及更改控制台字体。

例如,我想打印'ã',它应该是代码页1252上的字符227,但控制台应用程序只输出一个简单的'a'。

有许多其他角色似乎与我对Windows-1252的预期不同 - 例如,Ò,Ó,Ô和Õ(#210-213)都是普通的O. / p>

以下是代码段:

int main()
{
    locale::global(locale(""));
    SetConsoleOutputCP(1252);

    for (int i = 1; i < 255; i++) {
        std::cout << "  " << i << ":" << (unsigned char)i;
        if (i % 10 == 0) cout << std::endl;
    }
}

这是输出(光栅字体):    image capture of output

编辑:根据Igor的建议,我在使用Lucida Console和Consolas字体时也会添加结果。不幸的是,它没有解决问题。

在所有三种字体中,字符227仍然是'a'而不是'ã'。

Lucida Console字体:

Lucida Console Output

Consolas字体:

Consolas Output

0 个答案:

没有答案