最近发现用wprintf()在控制台上输出日文的时候,经常是什么也不显示。
调查了一下,发现原来是locale的问题。
输出日文之前必须调用setlocale(),例子如下。
#include <stdio.h>
#include <locale>
int main( void ) {
char *loc = setlocale( LC_CTYPE, "" );
printf( "%s\n", loc );
setlocale( LC_ALL, loc );
wprintf( L"表示されます!\n" );
return 0;
}
同样道理,在控制台上输出中文也应该调用setlocale()。