【发布时间】:2015-05-20 12:20:44
【问题描述】:
我知道,stackoverflow 上有几个类似的主题,但我还没有找到解决我的问题的方法。 我尝试读取 UTF-8 文件。英文字母一切正常,但我看不懂俄文或西班牙文字母。 这是我的代码。只是例子。
FILE * fp;
char line[3];
fp = fopen("letters.data", "r");
if (fp == NULL)
return;
int i=0;
fread(line,1,3, fp); // BOM
wint_t w;
while( w = fgetwc(fp) )
{
wprintf(L"%c", w);
}
fclose(fp);
这里是letters.data 文件:
并输出数据:
我不知道该怎么办。
【问题讨论】:
-
也许你应该使用
setlocale。 -
格式说明符
%c输出char,而不是wchar。使用%lc输出wchar。 -
@LeonardMichlmayr 尝试写
setlocale(LC_CTYPE, "")。它没有帮助。