FYI, what MSDN says about the types in printf/wprintf:
%s String When used with printf functions, specifies a
single-byte–character string; when used with wprintf functions,
specifies a wide-character string.
%S String When used with printf functions, specifies a wide-character
string; when used with wprintf functions, specifies a
single-byte–character string.
--- Original Message from Bruno Haible ---
Format specifier Argument type
%d int
%s char *
%ls wchar_t *
%c int (promoted from char)
%lc wint_t (promoted from wchar_t)
--
Linux-UTF8: i18n of Linux on all levels
Archive: http://mail.nl.linux.org/linux-utf8/