我正在尝试从 Windows 控制台打印和读取葡萄牙语字符,例如: ç 、 é 等...
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <wchar.h>
int main (void){
wchar_t stringtemp[5];
setlocale(LC_ALL,"Portuguese");
wprintf(L"test with portuguese character: ç\n");
wprintf(L"Insert a strange portuguese character: ");
wscanf(L"%s",stringtemp);
wprintf(L"%s\n",stringtemp);
return 0;
}
这是输出:
使用葡萄牙语字符进行测试:ç
插入一个奇怪的葡萄牙语字符:ç
╬
有人知道那里出了什么问题吗?
最佳答案
至少在 Linux 上,如果我将 setlocale(LC_ALL, "Portuguese")
行更改为 setlocale(LC_ALL, "pt_BR.UTF-8") ,上面的代码就可以工作
.
(奇怪的是,它不适用于“pt_PT.UTF-8”
)。
关于带有 gcc 和葡萄牙语字符的 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49800435/