这是我的java代码
public static void main(String[] args)  throws IOException{
// TODO Auto-generated method stub
StringBuffer sb = new StringBuffer("http://www.ip168.com/mobile/?mobile=1391632");
URL url = new URL(sb.toString());
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
// connection.setRequestProperty(arg0, arg1);
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String inputline = in.readLine();
inputline=URLDecoder.decode(inputline, "utf-8");

System.out.println(inputline);
}
就这一个方法,是查询手机归属地,但是返回的结果汉字都是乱码,在别人机器上都没乱码,但是我的eclipse编码格式已经给设成utf-8了啊,怎么回事???

解决方案 »

  1.   

    补充一点:上边的url给错了,是这个http://tool.114la.com/shouji/1391632
      

  2.   

    把编码换成gbk和gb2312 试试
      

  3.   

    inputline=URLDecoder.decode(inputline, "gbk");
      

  4.   

    可能是eclipse控制台 你看看window--preferences--editors--text editors--spelling
    里的encoding 是utf-8不
      

  5.   

    是的,刚看过,就是utf-8,我都很发迷,别人没乱码就我乱码
      

  6.   

    connection.setRequestMethod("GET"); get改成post试试 还有页面上的form也要改成post提交
      

  7.   

    谢谢了,我找到原因了,可以这样改BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));把这句改了,取出流的同时就编码BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(),"UTF-8"));,不知道为什么,在别人那里都不用这样,纠结了