Firstable Я хочу сказать, что я пытался найти эту проблему в Google и найти ответчик в stackoverflow, и я знаю, что Java хранит строку как UTF-16. У меня проблема с преобразованием строки, которая была закодирована в формате ISO, в UTF-8. Веб-сайт, который я загружаю, отображает символы в ISO, а остальная часть моей программы, которая также преобразует строки в поток, использует кодировку UTF-8.
Как я могу изменить кодировку моей строки inputHTML на UTF-8?
Я пытался манипулировать им с помощью Writer:
OutputStream os = new ByteArrayOutputStream();
Writer wr = new OutputStreamWriter(os, "UTF-8");
Writer writer = new BufferedWriter(wr);
writer.write(inputHTML);
writer.close();
но не знаю, как изменить OutputStream на мою преобразованную новую строку.
Это мой код:
URL url = new URL("http://www.onet.pl");
InputStream is = url.openStream();
Reader reader = new InputStreamReader(is, "ISO-8859-2");
StringWriter writer = new StringWriter();
char[] buf = new char[4096];
int len;
while ((len = reader.read(buf)) >= 0)
writer.write(buf, 0, len);
StringBuffer sb = writer.getBuffer();
String inputHTML = new String(sb);