『提问』jdon版本jive中文搜索的问题?

03-10-17 jameszxm
环境:Tomcat4.1+mysql3.22+windows2000

出现的问题是:中文搜索不出来。

我用的是jdon版jive,所有原码都没有改,按安装说明,成功装上了jive.

所有页面和对数据库操作都正常。中文没有问题,唯一一个问题是中文搜索不出来。

我试过的方法:

1:编辑search.jsp.

String queryText = ParamUtils.getParameter(request,"q");
System.out.println("queryText]="+queryText);
<p>

发现此处打印的结果是乱码。我在后面加上了:

if(queryText!=null){

queryText=new String(queryText.getBytes("ISO8859_1"),"GB2312");

}

再打印,字符显示正常,但是页面中search表单出现了??.

于是我把

if(queryText!=null){

queryText=new String(queryText.getBytes("ISO8859_1"),"GB2312");

}

换到另一个地方,也就是执行查询前:

if(queryText!=null){
queryText=new String(queryText.getBytes("ISO8859_1"),"GB2312");
}  
System.out.println("[<start:>queryText=]"+queryText);
// Set the query text, do a search:
query.setQueryString(queryText);
<p>

此时页面搜索表单显示正常,执行查询前queryText显示也正常,中文成功转换。但是查询结果就是没有。而实际上是有的。

我用另一个组合:Tomcat3.3+mysql3.22+windows2000

时,中文搜索我按上面的方法修改search.jsp,即在

String queryText = ParamUtils.getParameter(request,"q");

后面加上字符转换的代码。此时页面中search表单出现了显示正常.

中文搜索成功。数据库是一个,数据也是一样的。连接方式也是一样的。

Tomcat3.3与Tomcat4.1中,代码唯一区别是:

<%@ page contentType="text/html;charset=ISO8859_1" %>//tomcat4.1
<p>

<%@ page contentType="text/html;charset=GB2312" %>//tomcat3.3
<p>

我也试过用:

(queryText!=null)?java.net.URLEncoder.encode(queryText,"GB2312"):""
<p>

这段代码代替

(queryText!=null)?java.net.URLEncoder.encode(queryText,""):""
<p>

这些都不行。

请问:有哪位高手可以帮帮我,知道到底什么地方出了问题?

怎么样在tomcat4.1下使中文搜索成功?

我昨天搞了整整一晚上,都没有成功。在这里我先谢谢了!

猜你喜欢