なぜ、わざわざファイルを分けたかというと、こちらは 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 が入っていた。 まったくもって無知でございました。