#define _UNICODE
#include <tchar.h>
#include <stdio.h>

void main()
{
TCHAR str[5] = L"日本語";
printf( "%s\n", str );
}

と実行すると文字化けするんですが、
どうやったら文字化けしないで表示できるのでしょうか?