В Java кодировка по умолчанию UTF-8, поэтому когда вы пишите:
String utf8String= new String(res.getBytes("UTF-8"), "windows-1251");
Вы фактически переводите UTF-8 в windows-1251, а отображаете как UTF-8.
Вы можете легко проверить мою догадку воспользовавшись программой
Штирлиц 4.0