Java InputStreamReader, другой вывод на Mac и Linux

Я пытаюсь заставить это работать на Mac, на Linux все работает отлично.

public class URLTest {

public static void main(String[] args) {
    try{
        String webpage="Insert random webpage here";
        InputStream in = new URL(webpage).openConnection().getInputStream();   
        InputStreamReader reader = new InputStreamReader(in);
        while(reader.ready()) 
            System.out.print((char)reader.read());

    }catch (IOException e){
        ;
    }
}

На Mac я просто получаю числа в качестве вывода, а на Windows ничего не получаю. Любая идея заставить это работать на всех системах?

Ваше здоровье


person Thorstennn    schedule 21.05.2015    source источник


Ответы (1)


У вас должна быть определена кодировка, если вы этого не сделаете, она будет загружена в кодировку платформы по умолчанию, которая отличается для разных платформ и языков.

Попробуйте это, чтобы прочитать в UTF-8:

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;

public class URLTest {

    public static void main(String[] args) {
        try {
            String webpage = "Insert random webpage here";
            InputStream in = new URL(webpage).openConnection().getInputStream();
            InputStreamReader reader = new InputStreamReader(in, "UTF-8");
            while (reader.ready())
                System.out.print((char) reader.read());

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
person Krzysztof Cichocki    schedule 21.05.2015