VCだと fopen("filename", "r, ccs=UTF-8"); でBOMなしもBOMありも読める。
おJava様のInputStreamReaderはBOMありが正常に読めないウンコ。