情景:在资源调度中,首先用户需要选择工作目标,然后跟据选择的工作目标不同而选择不同的账号和代理ip。处理过程如下:点击选择账号,在js中获取工作目标对工作目标进行两次编码(encodeURI(encodeURI(gzmb))),在后台,对工作目标进行解码,然后构建URL。
如下:
String gzmb = URLDecoder.decode(request.getParameter("gzmb"), "UTF-8");
Stringurl = "/wlzh/queryPageList.action?accountO.zt=1&accountO.gzmb="+gzmbJiami+"&accountO.accountIsYx=1";
如图
可知解码是成功的。但是最后得到的结果却是将所有的账号全部选择出来,并没有选择对应工作目标的账号。查看后台。URL跳转得到的工作目标值如下所示的:
在这里我立马想到URL中文乱码,于是我在后台进行解码操作。但是不知道为什么,换了几种办法都不可以。在这里我想到了以前的办法,通过js两次编码,重构URL。所以在后台我将工作目标传递出来,然后通过js两次编码,重新构建URL。做到这里时我发现,这不就是一开始的么?既然这样,第一步为什么需要解码呢,直接传递过来不就可以了么?将第一步的解码去掉,还真的可以。在进行测试,ie7以上的、火狐、谷歌,唯独ie6不可以(这个原因不知道为什么?求解释)。在这里我只能想到一种解决办法了,使用form表单来进行处理。虽然可以成功,但是这是万不得已的办法。
“有些东西只要你放在心上,过段时间后你一定可以想到一种解决办法”。下班后在车上突然想到了一种另类的办法—在后台对工作目标进行加密操作,赋值给url,然后在另外一边进行解密操作不就可以了。如下
//构建账号选择条件
String gzmb= URLDecoder.decode(request.getParameter("gzmb") == null ? "" : request.getParameter("gzmb"), "utf-8");
String gzmbJiami = DecodeUtils.getJiamiData(gzmb);
Stringurl = "/wlzh/queryPageList.action?accountO.zt=1&accountO.gzmb="+gzmbJiami+"&accountO.accountIsYx=1";
URL如下所示:
在那边进行解密操作
String gzmbJiemi = DecodeUtils.getJiemiData(accountO.getGzmb());
accountO.setGzmb(gzmbJiemi);
PageResultInfo<Account_Bean>pageResultInfo = service.queryAccountPageResultBy(accountO , pageInfo,user);
得到gzmb值如下所示
注:DecodeUtils是一个功能非常强大的加密解密的工具类。
这里所提供的并不是什么高深的技术,只是提供一种另类的解决方法。这个事情告诉了我,没有做不到的事情,只有想不到的办法。
分享到:
相关推荐
6-4 字符串加密 【1】加密一行字(NEW.exe) 重大消息:可以兼容中文!...如果是中文会显示乱码,所以在接下来的问题中打Y(开启转换中文) 转换完毕即可。 -----------------解密完成-------------------
主要为大家分享了介绍了java中文乱码之解决URL中文乱码问题的方法,感兴趣的小伙伴们可以参考一下
将任意字符(包括汉字)加密并编码成数字+数字,解密时先解码后解密还原成相应字符。 例如: 原文:测试 helloworld ... 3,可用于解决jsp,servlet的中文乱码问题。 数据加密后传出去,在调用的地方解密即可。
解决中文乱码问题 解决中文乱码问题 解决中文乱码问题
js 中乱码处理法方式 encodeURIComponent(encodeURIComponent(customerAddress)) decodeURIComponent(customerName) js到java encodeURI(url) String qijuType= new String(request.getParameter( (...
解决两个问题:一、从反编译代码的界面CTRL+C复制是如果选中内容包含中文,贴到其他编辑器时,中文丢失; 二、打开xml文件、properties文件等包含中文时。中文在反编译界面中显示乱码。用其他工具打开正常。
如何解决MYSQL数据库中文乱码问题-.docx
php使用openssl_encrypt中的AES-128-ECB加密解密 保证的传输数据的安全性 保证了开发系统的安全性
java中文乱码问题详解--- java中文乱码问题详
jd-gui.exe反编译后复制中文是乱码,xml,yml...等配置文件中文显示为乱码,本资源修改了编码,反编译后中文随意复制,配置文件显示也是正常的
Android RSA加密解密算法DEMO,可以帮助需要RSA算法的同学很快上手。同时完美解决了和后台加密密文解密的问题。可以做到解密后台算法,已经加密后,后台可以解密。不会出现解密乱码问题。
1.采用秘钥为16位长度的加密字符 2.加密算法为AES/ECB/PKCS5Padding 3.解决加解密乱码问题 4.完整的线上可运行代码及各方法及步骤注释 5.无任何插件,java环境直接运行
URL汉字编码问题(及乱码解决)
java中文乱码解决之道(8)解决URL中文乱码问题Java开发Java经验技巧共7页.pdf.zip
解决Matlab使用urlread读取中文网页乱码问题-Matlab使用urlread()读取中文网页.doc Matlab使用urlread()读取中文网页乱码问题,按照文中的方法即可,修改前不要忘了备份urlread文件奥!
asp.net中URL参数传值中文乱码的三种解决办法
解决Lua文件反编译后汉字乱码问题。开发环境vs2013,语言c#
web端提交前给中文 密码加密,后台解密后与 表中数据比较。防止抓包获取用户信息。
敝人近期整理的客户端与服务端通信实例,数据编码约定采用UTF-8编码,解决中文乱码问题.ServerSocket组件可以同时接受一个或多个ClientSocket组件的连接请求,并与每个ClientSocket组件建立单独的连接,进行单独的...