url中用 like %林% 做为参数。出现了乱码问题。

是这样的。请先看下面的代码:

var URL = '/zmt/tiles/ry/openSelectField.jsp?excel=excel&where='+where; openwin(URL,'400','830');

where的值是带有like和百分号的。例如:
where = "name like %林%"

参数传到openSelectField.jsp后。我使用下面的代码去拿到参数的值,如下:

String where = (String)request.getParameter("where");

但是却发现where = null。

碰到这个问题后,我就先用不带%的参数值。例如 whereExcel=" name = 林彬"
试一下openSelectField.jsp中是否可以拿到值。

结果是可以拿到的。

所以我就用了java中的URLEncoder来处理。

URLEncoder.encode(where,"UTF-8")

处理完后,再次调用如下代码:

var URL = '/zmt/tiles/ry/openSelectField.jsp?excel=excel&where='+where;

openwin(URL,'400','830');

则openSelectField.jsp上是可以拿到值的。
但是此时我在openSelectField.jsp上有一个按钮。点击完后,想把这个where传到action上去。

这个时候,无论我在action中如何处理,都是乱码。这样导致我无法访问数据库了。

在action中我是用RLDecoder.decode(where,"UTF-8");
来做的。
还试验了。 where = new String(where.getBytes("ISO8859_1"),"UTF-8");

 以及request.setCharacterEncoding(arg0)

等方式。就是不行。

请问我该如何解决这个问题。

像javascipt中,还有encodeURI() 和encodeURIComponent等。目前还没有试过。

我觉得最主要是不是%百分号的问题。

encodeURI,或者escape,编码都要用两次,第一次汉字编码后第二次主要就是把%编码,一般这样escape(escape("%中国%"));这样获取应该可以。

[quote]"name like %林%" [/quote]
在林前面随便加上数字试试。。。
[code="java"]"name like %23林%" [/code]

就是%号问题,用escape编一下,你 debug就能看到一个%要在java里拿,前提是 %25,所以一定要转下。

我建议,
1.你自己写一个动态Form 把超链接中的汉字,封装到Form中,然后给超链接给一个onclick事件,来调用你写的js方法:具体操作是要把超链接中的参数通过截取字符串获得
2.你在tomic中有一个server中的配置文件,设置编码集 这样也可以