unicode hola mundo para C?

Estoy tratando de generar cosas como 안, 蠀, ☃ desde C

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

output is?,?,?

¿Cómo imprimo esos caracteres?

Editar

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

este hizo el truco. la salida es 안, 蠀, ☃. excepto que el carácter chino y el muñeco de nieve aparecen como recuadro en mi urxvt probablemente porque no habilité esas configuraciones regionales.

$ 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

¿Qué configuración regional debo habilitar adicionalmente para que muestre el carácter chino y el muñeco de nieve? tal vez necesito fuente?

¿Funcionará el programa anterior en Windows?

Respuestas a la pregunta(5)

Su respuesta a la pregunta