解决URL中文乱码问题--对中文进行加密、解密处理

摘要:
要解决URL中文乱码问题--加密和解密中文:在资源调度中,用户需要首先选择工作目标,然后根据选择的工作目标选择不同的帐户和代理IP。过程如下:单击以选择帐户,在js中获取工作目标,对工作目标进行两次编码(encodeURI(gzmb)),在后台解码工作目标,然后构建URL。如下所示:1Stringgzmb=URLDecoder.decode(
解决URL中文乱码问题--对中文进行加密、解密处理

情景:在资源调度中,首先用户需要选择工作目标,然后跟据选择的工作目标不同而选择不同的账号和代理ip。处理过程如下:点击选择账号,在js中获取工作目标对工作目标进行两次编码(encodeURI(encodeURI(gzmb))),在后台,对工作目标进行解码,然后构建URL。

      如下:

1 String gzmb = URLDecoder.decode(request.getParameter("gzmb"), "UTF-8");
2 Stringurl = "/wlzh/queryPageList.action?accountO.zt=1&accountO.gzmb="+gzmbJiami+"&accountO.accountIsYx=1";

      如图

 解决URL中文乱码问题--对中文进行加密、解密处理第1张

      可知解码是成功的。但是最后得到的结果却是将所有的账号全部选择出来,并没有选择对应工作目标的账号。查看后台。URL跳转得到的工作目标值如下所示的:

解决URL中文乱码问题--对中文进行加密、解密处理第2张

      在这里我立马想到URL中文乱码,于是我在后台进行解码操作。但是不知道为什么,换了几种办法都不可以。在这里我想到了以前的办法,通过js两次编码,重构URL。所以在后台我将工作目标传递出来,然后通过js两次编码,重新构建URL。做到这里时我发现,这不就是一开始的么?既然这样,第一步为什么需要解码呢,直接传递过来不就可以了么?将第一步的解码去掉,还真的可以。在进行测试,ie7以上的、火狐、谷歌,唯独ie6不可以(这个原因不知道为什么?求解释)。在这里我只能想到一种解决办法了,使用form表单来进行处理。虽然可以成功,但是这是万不得已的办法。

      有些东西只要你放在心上,过段时间后你一定可以想到一种解决办法”。下班后在车上突然想到了一种另类的办法—在后台对工作目标进行加密操作,赋值给url,然后在另外一边进行解密操作不就可以了。如下

复制代码
1 //构建账号选择条件
2 
3         String gzmb= URLDecoder.decode(request.getParameter("gzmb") == null ? "" : request.getParameter("gzmb"), "utf-8");
4        String gzmbJiami = DecodeUtils.getJiamiData(gzmb);
5        Stringurl = "/wlzh/queryPageList.action?accountO.zt=1&accountO.gzmb="+gzmbJiami+"&accountO.accountIsYx=1";
复制代码

       URL如下所示:

解决URL中文乱码问题--对中文进行加密、解密处理第5张

      在那边进行解密操作

1 String gzmbJiemi = DecodeUtils.getJiemiData(accountO.getGzmb());
2 accountO.setGzmb(gzmbJiemi);
3 PageResultInfo<Account_Bean>pageResultInfo = service.queryAccountPageResultBy(accountO , pageInfo,user);

      得到gzmb值如下所示

 解决URL中文乱码问题--对中文进行加密、解密处理第6张

      注:DecodeUtils是一个功能非常强大的加密解密的工具类。

      这里所提供的并不是什么高深的技术,只是提供一种另类的解决方法。这个事情告诉了我,没有做不到的事情,只有想不到的办法。

 

 
 

免责声明:文章转载自《解决URL中文乱码问题--对中文进行加密、解密处理》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇5.移动渗透测试工具之drozerjmeter请求元件之用户自定义变量下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

requests + bs4 爬取豌豆荚所有应用的信息

1.分析豌豆荚的接口的规律 - 获取所有app的接口url 2.往每一个接口发送请求,获取json数据 解析并提取想要的数据 app_data: 1.图标 app_img_url 2.名字 app_name - 3.下载量 app_download_num - 4.大小 app_size - 5.简介 app_comment - 6.详情页url a...

百度地图在前端开发中的运用

一、安装及引入 1、在vue中安装依赖 $ npm install vue-baidu-map --save 在vue脚手架main.js中引入 import BaiduMap from 'vue-baidu-map' Vue.use(BaiduMap, { ak: 'Yo8oGhNGslHc4B8Qs8EWI4BvU3Qt4Zla' }); ...

JS读取粘贴板内容

1.1 监听onpaste事件 1.1.1 定义和用法 npaste 事件在用户向元素中粘贴文本时触发。 注意:虽然使用的 HTML 元素都支持 onpaste 事件,但实际上并非支持所有元素,例如 <p> 元素, 除非设置了 contenteditable 为 "true" (查看下文的更多实例)。 提示:onpaste 事件通常用于 typ...

第二百二十七节,jQuery EasyUI,ComboTree(树型下拉框)组件

jQuery EasyUI,ComboTree(树型下拉框)组件 学习要点: 1.加载方式 2.属性列表 3.方法列表 本节课重点了解EasyUI中ComboTree(树型下拉框)组件的使用方法,这个组件依赖于Combo(下拉框) 和 Tree(树)组件。 一.加载方式 class 加载方式 <select id="cc"class="easy...

JavaScript 之 对象转换为Url参数形式

在使用Get请求数据的时候,常常需要手动拼接。相对来说,这样不利于维护。有没有办法,能将对象直接转换为数组的形式? 可以使用此方法 1 /**讲对象转换为url参数形式 2 * @property {Object} param 将要转换为URL参数的字符串对象 3 * @property {String} key URL 参数字符串的前缀 4 * @pro...

Python接口自动化(五) cookie绕过验证码登录

有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接)。获取不到也没关系,可以通过添加cookie的方式绕过验证码。 抓登录cookie 如博客园,未登录时,使用fiddler抓包查看cookie值。登录后,使用fiddler抓包查看cookie值。查看cookie变化,发现多个两组参数。 #c...