C与gcc和葡萄牙字符

时间:2018-04-12 15:27:25

标签: c widechar

我正在尝试打印并从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;
    }

这是输出:

用葡萄牙语字符测试:ç

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

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

2 个答案:

答案 0 :(得分:2)

至少在Linux上,如果我将setlocale(LC_ALL, "Portuguese")的行更改为setlocale(LC_ALL, "pt_BR.UTF-8"),则上述代码有效。

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

答案 1 :(得分:1)

使用此功能 - setlocale(LC_ALL,"pl_PL.UTF-8");