Java InputStreamReader,mac和linux上的不同输出

时间:2015-05-21 13:43:25

标签: java linux macos inputstreamreader

我试图让它在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 个答案:

答案 0 :(得分:1)

您应该定义一个charset,如果不这样,它将被加载到平台默认字符集中,这对于不同的平台和语言是不同的。

试试这个,阅读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();
        }
    }
}