改代码用UTF-8编码保存,FC5(gcc4 glibc 2.4)下显示正常。但在Debian Sarge(gcc 3.3.5 glibc 2.3.2)下显示乱码。 #include <locale.h> #include <stdio.h> #include <wchar.h> int main(void){ wchar_t *wc; wchar_t *ws = L"中文/Chinese"; if(setlocale(LC_CTYPE, "zh_CN.UTF-8") == NULL){ perror("set locale failed"); return 1; } wprintf(L"%ls\n\n", ws); for(wc = ws; *wc != 0; ++wc){ wprintf(L"%lc\n", *wc); } return 0; }