最近在用java设计搜索引擎。在设计蜘蛛程序的时候,遇到一个痛苦的问题,字符编码的问题。
因为抓取到的如果是gb2312的就没事。如果是utf-8的就会成为乱码。
所以我希望要在抓取的时候提前知道这个url指向的网页的编码格式。所以,问题就是,java如何知道(或者得到)一个指定url所指向的页面的字符编码格式?

解决方案 »

  1.   

    我蜘蛛访问一个url之后,通过调用java自带的html分析器分析页面(csdn有相关的帖子介绍),然后将里面的内容提取。但是这是就出现一个问题就是utf-8的就会成为乱码。所以,希望在提取的时候,先判断该页面的编码格式是否为gb2312的。不是就转换。或许java自带的html分析器有相应的方法,我不知道。所以,请教是否有高人研究过这个方面的。给个指点。
      

  2.   

    URL url=new URL("");
    String s=url.openConnection().getContentEncoding();
      

  3.   

    返回的多数,或者基本都是NULL。 唉~~愁。
    yunxiang(无名) ( ) 信誉:98    Blog   加为好友  2007-5-30 15:57:36  得分: 0  
    URL url=new URL("");
    String s=url.openConnection().getContentEncoding();
      

  4.   

    哪位能把getCharacterEncoding的详细调用方法给我。
    关给一个函数 怎么用呢
      

  5.   

    用chardet.jar这个包就可以的,用法很简单,只要把文件路径传进去就行了
      

  6.   

    再顶最后一次。我的蜘蛛程序将网页分析完之后直接将内容存储到数据库当中。
    所以要在存储到数据库之前,在分析的过程当中区分他们的字符编码格式。
    所以大家提供的一些方法并不适用。还有没有其他的方法?URL url=new URL("");
    String s=url.openConnection().getContentEncoding();这个方法,基本上都不能获取到charset的内容,都是空。