unicode Olá mundo para C?

Estou tentando produzir coisas como 안, 蠀, ☃ de C

#include <wchar.h>
int main()
{
    fwprintf(stdout, L"안, 蠀, ☃\n");
    return 0;
}

saída é?,?,?

Como imprimo esses caracteres?

Editar

#include <wchar.h>
#include <locale.h>
int main()
{
    setlocale(LC_CTYPE, "");
    fwprintf(stdout, L"안, 蠀, ☃\n");
    return 0;
}

sso fez o truque. a saída é 안, 蠀, ☃. exceto que o caractere chinês e o boneco de neve aparecem como caixa no meu urxvt provavelmente porque eu não habilitei esses códigos de idioma.

$ locale -a
C
en_US
en_US.iso88591
en_US.iso885915
en_US.utf8
ja_JP.utf8
ko_KR
ko_KR.euckr
ko_KR.utf8
korean
korean.euc
POSIX
zh_CN.utf8

qual localidade tenho que ativar adicionalmente para exibir caracteres chineses e boneco de neve? talvez eu precise de fonte?

programa acima funcionará no Window

questionAnswers(5)

yourAnswerToTheQuestion