我的Visual Studio上有一个解决方案,我的程序语言是Brazillian Portuguese。 每次我编译它并执行它,它根本不显示我写的字符。
例:
int main (void) {
printf("áéíóúàèìòù");
return 0;
}
它只是显示了一些非常奇怪的东西。
虽然,我已经测试了另一次将输出输出到文件并显示正确的输出,所以我认为问题可能出在cmd
。
然后,我搜索了可能导致问题的原因,结果基本上悬挂在使用的代码页cmd上。
我终于使用了chcp 1252
,但似乎它对我不起作用,所以我在这里。有谁知道我应该使用什么代码页,或者我可以对源文件做些什么来显示正确的输出?提前谢谢。
答案 0 :(得分:0)
我假设是C ++。
原因是文件以UTF-8编码保存,字符串文字被视为字节序列。
因此,如果您的源代码中包含"é"
,则会将其视为"\c9\a9"
,并将其显示在CP-437(Windows命令提示符的默认西方编码)中├⌐
解决方案:或者:
以一些8位编码保存源文件(例如CP-1252),更改VS中的默认编码,并将终端设置为使用相同的编码,
或将您的终端更改为支持UTF-8的终端,例如Cygwin。