java кодировка из windows-1251 в utf-8
Вы из потока уже не в той кодировке читаете.
Надо создать правильный InputStreamReader:
InputStreamReader isr = new InputStreamReader(conn.getInputStream(), "windows-1251");
BufferedReader br = new BufferedReader(isr);

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

Вы фактически переводите UTF-8 в windows-1251, а отображаете как UTF-8. 
Вы можете легко проверить мою догадку воспользовавшись программой Штирлиц 4.0