如题,我在用lucene为html建立索引后,然后进行查询,发现查询出的中文标题,摘要全是乱码,而英文的没问题。
又发现:如果html页面编码是gb2312,则在建立索引后,进行查询时正常的。
        如果html页面编码是utf-8,则就出现乱码。另外:对html建立索引时,添加一个字段是content(html内容中既有中文又有英文)
      简短代码如:HTMLParser parser = new HTMLParser(fis);
doc.add(new Field("content", parser.getReader()));
在查询时,输入中文时,查不出,英文则可以。
附:lucene版本是lucene-2.4.0刚接触lucene,希望哪位大侠能给些建议!

解决方案 »

  1.   

    那你就用gb2312的编码方式吧   utf汉字编码后是占三个字节的  估计问题出在这了或者你手动转换一下编码再显示出来,不知道可以不 String.getBytes();
      

  2.   

    用的是Tomcat吗?
    可以试一下这个方法
    修改server.xml中connnector端口那一块,注意看红色部分是新增的。
    <Connector port="8080"
        maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
        enableLookups="false" redirectPort="8443" acceptCount="100"
        connectionTimeout="20000" disableUploadTimeout="true"
        URIEncoding="UTF-8" useBodyEncodingForURI="true" />
      

  3.   

    因为一般来说都编码设为utf-8的话就不用使用过滤器了,utf-8还乱码的话,那就不太对了.
      

  4.   

    我用lucene中文也有乱码,整个工程我用的都是utf-8编码,即使在读取文件时,我也特意把字符串的编码转成utf-8的,同时也设置了request的编码方式能想到的都试了,还是有乱码!这lucene不会只对一种编码适用吧?求解