1.如URL url=new URL("www.sian.com");
2.我该如何用Java代码得到该网站的编码格式呢。
3.或者用其他的方法。注意一点是该网站参数是动态的!

解决方案 »

  1.   

    直接截取页面的charset可行不?
      

  2.   

    URL 类自身并不根据 RFC2396 中定义的转义机制编码或解码任何 URL 部分。由调用方对任何需要在调用 URL 前进行转义的字段进行编码,并对从 URL 返回的任何经过转义的字段进行解码。进一步而言,由于 URL 不懂 URL 转义,所以它不会识别同一 URL 的对等编码和解码形式。例如,对于这两个 URL:http://foo.com/hello world/ 和 http://foo.com/hello%20world将被视为互不相等。 
    注意,URI 类在某些特定情况下对其组成字段执行转义。建议使用 URI 管理 URL 的编码和解码,并使用 toURI() 和 URI.toURL() 实现这两个类之间的转换。
    ==================================
    以上内容节选自API文档
      

  3.   

    2楼大哥。你能写一下例子出来吗。到时候可以用我给你加分。就是我在Action中能得到一个连接。最终得到连接网址的里的编码格式。
      

  4.   


    URL url = new URL("http://baidu.com");

    InputStreamReader inr = new InputStreamReader(url.openStream());

    while(inr.ready()){
    System.out.print((char)inr.read());
    }这里面有你想要的么?
      

  5.   

    你试一试这种:URL url=new URL("http://www.baidu.com");//创建URL对象URLConnection urlcon=url.openConnection();//返回一个URLConnection对象String charset=urlcon.getContentEncoding();/*这个应该是编码格式,如果不是的话查看URLConnection的api文档*/
      

  6.   

        URL,尤其对于HTTP协议的实现上,其应答本身只有两部分,头字段和实体数据,有些网站么,你可以这样就获取到编码信息:    URL url=new URL("http://www.baidu.com");
        HttpURLConnection http=(HttpURLConnection)url.openConnection();
        String contentType=http.getContentType();
        System.out.println(contentType);    但这并不是强制性的,所以并不可靠,HTTP协议只负责把数据实体传到客户端,Content-Type头字段允许描述数据实体的类型,但并不是所有实现都提供。
        一般而言,HTTP协议很多情况用来传输HTML内容,HTML标记里面的元数据标签:<meta>描述了这个页面是用什么编码的,楼主可以用正则表达式分析所得页面的内容来抓出编码。
        但很遗憾,这也不是百分百可行的,有些网站也不给这个,那么浏览器就会用本地操作系统的默认编码来显示,如果服务器不是用的本地默认编码,那就出现了传说中的乱码了!