コード:
#include <stdio.h>
#include <wchar.h>
#define USE_W
int main()
{
#ifdef USE_W
const wchar_t *ae_utf16 = L"\x00E6 & ASCII text ae\n";
wprintf(ae_utf16);
#else
const char *ae_utf8 = "\xC3\xA6 & ASCII text ae\n";
printf(ae_utf8);
#endif
return 0;
}
出力:
ae & ASCII テキスト ae
printf は正しい UTF-8 出力を生成しますが、次のようになります。
æ & ASCII テキスト ae
これはここでテストできます。