Вы должны установить кодировку в части ответа, а не в части запроса, такой как
Content-Type: text/html; charset=utf-8
Эта часть должна быть правильной, поскольку вы сказали, что все в порядке, когда вы тестируете из браузера.
Теперь из клиентской части, то есть в вашей Java-программе, вы также должны установить заголовок Accept-Charset
, который указывает серверу кодировку, которую вы можете принять.Например, для utf-8, затем iso-8859-1 вы можете добавить этот заголовок:
Accept-Charset: utf-8, iso-8859-1;q=0.5
Если это не работает, вы также можете попытаться прочитать байты из соединения, указав кодировку, напримерas:
DataOutputStream ds = new DataOutputStream(con.getOutputStream());
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(ds, "UTF-8"));
Возможно, проблема в том, что вы не показываете эту часть в опубликованном коде.