Sam_Deep_Thinking 2009-12-10 19:33
浏览 175
已采纳

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

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

  • 写回答

4条回答 默认 最新

  • iteye_13682 2009-12-11 12:59
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况