【发布时间】:2013-11-29 10:58:59
【问题描述】:
当我使用 NetBeans 编译下面的代码时,程序的输出是终端中的一些奇怪字符(teste á é õ)。不幸的是,我找不到解决方案。
有人经历过吗?知道解决方案吗?
#include <stdio.h>
#include <locale.h>
int main(int argc, char** argv) {
setlocale(LC_ALL,"");
printf("teste á é õ");
return (0);
}
我的编译器是 MinGW,我的母语是巴西葡萄牙语。
输出:
【问题讨论】:
-
郑重声明,“é”是一个 UTF-8“é”,被误解为 ISO-8859-1。例如看这篇文章:Why does “é” become “é”?
-
所以基本上,您的程序输出 UTF-8 数据,但您的终端设置为使用编码 iso8859-1
-
在上面的 Dev-C++ 代码中完美运行。我该如何解决?我必须配置 Windows 终端还是愿意在代码中设置输出终端?
-
此输出是否显示在 NetBeans 控制台或 Windows 命令行终端中?我认为 NetBeans 只能显示 ASCII 字符。对于 Windows 控制台,请参阅 stackoverflow.com/questions/388490/…
-
两者。不幸的是,即使使用 CHCP 65001 也能正常工作。我会继续使用 Dev-C++ ;/