C 与 gcc 和葡萄牙语字符



我正在尝试从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"%sn",stringtemp);
        return 0;
    }

这是输出:

使用葡萄牙语字符进行测试:ç

插入一个奇怪的葡萄牙语字符:ç

有人知道那里出了什么问题吗?

至少在 Linux 上,如果我将表示 setlocale(LC_ALL, "Portuguese") 的行更改为 setlocale(LC_ALL, "pt_BR.UTF-8"),您上面的代码就可以工作。

(奇怪的是,它不适用于"pt_PT.UTF-8"(。

使用这个 - setlocale(LC_ALL,"pl_PL.UTF-8");

最新更新