我正在尝试打印并从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;
}
这是输出:
用葡萄牙语字符测试:ç
插入一个奇怪的葡萄牙语字符:ç
╬
有人知道那里出了什么问题吗?答案 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");