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条)

报告相同问题?

悬赏问题

  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元