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 я ничего не получаю. Любая идея, чтобы это работало на всех системах?

ура

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();
        }
    }
}
Другие вопросы по тегам