C 如何将Windows控制台输出代码页设置为1252以外的其他值?
在VisualC中编码时,Windows显示为使用1252代码页输出文本 如何从C代码中将代码页设置为其他内容,例如UTF7?(例如,什么是API函数调用?) 我看了一下,但它没有给我的具体问题一个确切的答案 还显示了如何显示当前代码页,但没有显示如何从C设置代码页C 如何将Windows控制台输出代码页设置为1252以外的其他值?,c,visual-c++,encoding,C,Visual C++,Encoding,在VisualC中编码时,Windows显示为使用1252代码页输出文本 如何从C代码中将代码页设置为其他内容,例如UTF7?(例如,什么是API函数调用?) 我看了一下,但它没有给我的具体问题一个确切的答案 还显示了如何显示当前代码页,但没有显示如何从C设置代码页 您必须选择8位编码,CP_UTF8是一个好主意。那你必须 同时将字体更改为非终端字体。康索拉斯是个好主意。 -汉斯·帕桑 否,如果您的位置接近1252,则控制台编码将为437,即旧的IBM-PC代码页。您可以使用SetConsole
您必须选择8位编码,CP_UTF8是一个好主意。那你必须 同时将字体更改为非终端字体。康索拉斯是个好主意。 -汉斯·帕桑
否,如果您的位置接近1252,则控制台编码将为437,即旧的IBM-PC代码页。您可以使用SetConsoleCP()@HansPassant对其进行更改,无论我为SetConsoleCP尝试哪个CP(例如CP_UTF7、CP_WINAPI),字符串都将以完全相同的方式打印到控制台。(例如,193、63、140个单字节值在VS2010调试器中显示为代码页1252个字符,但奇怪的是,控制台上实际显示的是那些打印为unicode 9524、66、238的值)。为什么SetConsoleCP不改变字节的显示方式?您必须选择8位编码,CP_UTF8是个好主意。然后还必须将字体更改为非终端字体。Consolas是个好主意。很高兴知道,顺便说一句,SetConsoleCPOutput确实有效。