同学的毕业设计出现JavaScript用encodeURIComponentt编码后无法再后台解码的问题。 原来他是这样写的: window.self.location="searchbytext.action?searchtext="+encodeURIComponent(seartext); java处理的代码为: searchtext=java.net.URLDecoder.decode(searchtext,"UTF-8");/*需要处理异常*/ 咋一看觉的没问题啊,一编一解的,应该可以了。但还是出现了乱码。 后来网搜资料,发现原来在对后台java程序里的searchtext赋值的时候,本身已经使用了一次解码,不过解码的结果依然不对。所以我们可以在页面上进行两次编码操作,这样后台自动的那次就可以抵消掉一次,然后在使用searchtext=java.net.URLDecoder.decode(searchtext,"UTF-8");/*需要处理异常*/进行一次解码就好了。 正确的代码: JavaScript: window.self.location="searchbytext.action?searchtext="+encodeURIComponent(encodeURIComponent(seartext)); java: searchtext=java.net.URLDecoder.decode(searchtext,"UTF-8");/*需要处理异常*/ 另外还有一种方法是JavaScript进行一次编码,后台java处理时换种想法就好了: java代码: String s = new String(request.getParameter("name").getBytes("ISO8859-1"), "UTF-8"); |
encodeURIComponent编码后java后台的解码
最新推荐文章于 2022-09-29 16:18:39 发布
encodeURIComponent编码后java后台的解码