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

SamDeepThinking SamDeepThinking 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
是这样的。请先看下面的代码:

<script>

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

openwin(URL,'400','830');
</script>

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等。目前还没有试过。

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

...全文

相关推荐

评论 7
收藏 已收藏
分享
返回顶部
SamDeepThinking
SamDeepThinking 新星创作者: Java技术领域 新星创作者: Java技术领域领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
Java EE 67,535 成员 225,843 内容