【发布时间】:2014-12-20 11:59:17
【问题描述】:
我在使用 GCC 编译器和 Windows CMD 时遇到问题,因为我无法正确看到 UTF-8 字符。我有以下代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char caractere;
int inteiro;
float Float;
double Double;
printf("Tipo de Dados\tNúmero de Bytes\tEndereço\n");
printf("Caractere\t%d bytes \t em %d\n", sizeof(caractere), &caractere);
printf("Inteiro\t%d bytes \t em %d\n", sizeof(inteiro), &inteiro);
printf("Float\t%d bytes \t\t em %d\n", sizeof(Float), &Float);
printf("Double\t%d bytes \t em %d\n", sizeof(Double), &Double);
printf("Caractere: %d bytes \t em %p\n", sizeof(caractere), &caractere);
printf("Inteiro: %d bytes \t em %p\n", sizeof(inteiro), &inteiro);
printf("Float: %d bytes \t\t em %p\n", sizeof(Float), &Float);
printf("Double: %d bytes \t em %p\n", sizeof(Double), &Double);
return 0;
}
然后我运行以下命令:
gcc pointers01.c -o pointers
我没有收到任何编译错误。但是当我执行生成的文件 (.exe) 时,它不显示 UTF-8 字符:
Tipo de Dados Número de Bytes Endereço
Caractere 1 bytes em 2686751
Inteiro 4 bytes em 2686744
Float 4 bytes em 2686740
Double 8 bytes em 2686728
Caractere: 1 bytes em 0028FF1F
Inteiro: 4 bytes em 0028FF18
Float: 4 bytes em 0028FF14
Double: 8 bytes em 0028FF08
我该如何解决这个问题?谢谢。
【问题讨论】:
-
这是windows控制台的问题。有一些解决方法,但没有“但是”,即。没有任何东西在任何情况下都能可靠地工作。
-
您知道一些解决方法吗?即使是“但是”。
-
在此处查看已接受的答案和前两个 cmets(答案):stackoverflow.com/questions/388490/…(嗯,它也不是很详细……也许我在某处获得了另一个链接……)
-
谢谢。它可以工作,但似乎有很多“但是”......我希望通过 Windows 10 他们可以改善这一点。 =D
-
那么……你想写答案吗?还是我应该给出自己的答案? O.o