BufferedReader rd1 = new BufferedReader(new FileReader(fileName1));
BufferedReader rd2 = new BufferedReader(new FileReader(fileName2));
При таком использовании считываются и отображаются кракозябры, а не русский шрифт. Однако валидацию все равно проходит. С другой стороны, если использовать FileInputStream с нужной кодировкой, то вывод получается корректным, однако валидатор уже не принимает такой вариант. Может я не правильно использую FileReader?