Http-соединение Blackberry для чтения содержимого веб-страницы.Некоторые знаки препинания читаются неправильно - PullRequest
1 голос
/ 09 августа 2011

У меня есть фрагмент кода, который открывает HTTP-соединение для чтения данных, содержащихся на веб-странице.

        HttpConnection h = new HttpConnection();
        InputStream input = h.openInputStream();
        int len = (int) h.httpConn.getLength();

        StringBuffer raw = new StringBuffer();

        if(len > 0)
        {
            byte[] data = new byte[len];
            while( -1 != (len = input.read(data))) 
            {
                raw.append(new String(data, 0, len));
            }
        }

        response = raw.toString();
        input.close();
        h.httpConn.close();
        //System.out.println("Response -----> " + response);

        return response;

Этот код работает абсолютно нормально, но на некоторых знаках препинания он не читается должным образом. Например, >> '<< апостроф выглядит как >> â <<. </p>

Я предполагаю, что это может быть связано с кодированием, но я пробовал UTF-8, UTF-16 и ASCII, и это не решило проблему.

Ответы [ 2 ]

3 голосов
/ 09 августа 2011

У меня была эта работа для меня, когда вместо знаков препинания я получал странные символы:

public String getContents(InputStream stream) {
    String contents = null;
    try{
        contents = new String(IOUtilities.streamToBytes(stream), "UTF-8");
    }
    catch(Exception e) {
        //encoding error
    }
    return contents;
}
1 голос
/ 05 апреля 2012

Вместо этого:

raw.append(new String(data, 0, len));

вы можете использовать

raw.append(new String(data, 0, len, "UTF-8"));

, передавая имя завершающего символа, в данном случае UTF-8.

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