Проблема с преобразованием строки, закодированной в формате iso, в другую строку, закодированную в utf-8 - PullRequest
0 голосов
/ 14 февраля 2011

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);

1 Ответ

2 голосов
/ 14 февраля 2011

Ты не. Вы пишете это автору, инициализированному с соответствующей кодировкой, и писатель преобразует это после записи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...