gcc に --input-charset オプションを指定した場合、 gcc -E の結果はUTF-8になるようだ。 元のエンコーディングのままになると思っていて、はまってしまった。