なぜ、わざわざファイルを分けたかというと、こちらは Unicode (UTF-8) で 書く必要があったからである。さて、いかがであろうか。下に、「はぁと」が 並んでいるのが表示されたであろうか。

♡ ♡ ♡ ♡ ♡ ♡ ♡ ♡ ♡

ところで、このファイルは、もとは Shift_JIS で書いたのだが、 それを UTF-8 にコンバートするために、Windows 上で簡単なフィルタを作った。

#include <windows.h>
#include <stdio.h>

int main()
{
#define BUFFER_SIZE 0x10000

    char mbuf[BUFFER_SIZE];
    wchar_t wbuf[BUFFER_SIZE];

    while ( fgets( mbuf, BUFFER_SIZE, stdin ) != NULL ) {
        MultiByteToWideChar( CP_ACP, 0, mbuf, -1, wbuf, BUFFER_SIZE );
        WideCharToMultiByte( CP_UTF8, 0, wbuf, -1, mbuf, BUFFER_SIZE, NULL, NULL );
        printf( mbuf );
    }

    return 0;
}

ってなプログラムをサクッと書いて、Shift_JIS から UTF-8 にコンバートした。 Unicode に関しては、さすがに Windows は強いやね。 (でも、上のプログラムは、このファイルをコンバートするためだけにしか使わないな、きっと)

9月18日追記: ずいぶん前に tika さんからご教示をいただいていたのだが、 ふつう、unix 上では、iconv を使って sjis, euc と utf-7,8 との変換をするとのこと。 調べてみたら、私の生活環境である Vine Linux にも iconv が入っていた。 まったくもって無知でございました。