情景:在资源调度中,首先用户需要选择工作目标,然后跟据选择的工作目标不同而选择不同的账号和代理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是一个功能非常强大的加密解密的工具类。

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

一种另类的解决URL中文乱码问题--对中文进行加密、解密处理的更多相关文章

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

    解决URL中文乱码问题--对中文进行加密.解密处理 情景:在资源调度中,首先用户需要选择工作目标,然后跟据选择的工作目标不同而选择不同的账号和代理ip.处理过程如下:点击选择账号,在js中获取工作目标 ...

  2. form表单提交中文乱码(前台中文到JAVA后台乱码)问题及解决

    form表单提交中文乱码(前台中文到JAVA后台乱码)问题及解决 一.问题: 页面输入框中的中文内容,在后台乱码,导致搜索功能失效:(详细可以见后面的重现) 二.原因: 浏览器对于数据的默认编码格式为 ...

  3. vi/vim输入中文乱码,无法输入中文解决方法

    vi/vim输入中文乱码,无法输入中文解决方法 编辑/etc/vimrc或者/etc/virc,加入以下内容即可 set encoding=UTF-8 set langmenu=zh_CN.UTF-8 ...

  4. ZTree async中文乱码,ZTree reAsyncChildNodes中文乱码,zTree中文乱码

    ZTree async中文乱码,ZTree reAsyncChildNodes中文乱码,zTree中文乱码 >>>>>>>>>>>&g ...

  5. HttpClient_002_中文乱码、HttpClient中文乱码透析、总结

    中文乱码原理代码: String s = "中文"; byte[] bs2 = s.getBytes("utf-8");//将s拆成:utf-8个体,注:utf ...

  6. Sublime Text3中文乱码及tabs中文方块的解决方案

    一.文本出现中文乱码问题 方案1 1.打开Sublime Text 3,按Ctrl+-打开控制行,复制粘贴以下python代码,然后回车运行. 2. 复制并粘贴如下代码: import urllib. ...

  7. plsql部分字段中文乱码,sqlplus中文乱码

    PLSQL中文乱码 问题: 解决: 思路1:设置 export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" 结果:并不能解决问题!   ...

  8. sublime text2解决中文乱码,支持中文的设置方法

    步骤: 1.安装Sublime Package Control.        在Sublime Text 2上用Ctrl+-打开控制台并在里面输入以下代码,Sublime Text 2就会自动安装P ...

  9. STS 控制台 中文乱码(maven 中文乱码)

    用uriEncoding标签设置中文字符集就行了 <plugin> <groupId>org.apache.tomcat.maven</groupId> <a ...

随机推荐

  1. python os模块

    import os path = "路径" os.getcwd() #获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname" ...

  2. Thinkphp去掉index.php

    1.httpd.conf配置文件中 #LoadModule rewrite_module modules/mod_rewrite.so 把前面的警号去掉2.AllowOverride None 将No ...

  3. UIScrollView

    1.PPT介绍什么是UIScrollView 2.新建项目“大图片展示” * 尽量用storyboard,减少代码 * 设置contentSize属性 * 取消autolayout * 说明frame ...

  4. pip 国内源 gem 国内源

    清华: https://pypi.tuna.tsinghua.edu.cn/simple 豆瓣: http://pypi.douban.com/simple/ 阿里: http://mirrors.a ...

  5. spring官网改版后,如何下载jar包

    http://repo.springsource.org/libs-release-local/org/springframework 通过以上地址,可树型查看所有发布的包 问题是,官网页面上为何找不 ...

  6. 小清新cygwin,正在诞生中

    正文保留. 评论记录点滴.最后汇总.

  7. BOOST1.54简化编译

    1.设置环境变量 BOOST_ROOT E:\Projects\00.CODE.SDK\boost_1_54_0 2.运行bootstrap.bat 3.运行: bjam install --tool ...

  8. win10周年更新后程序各种卡死,进程无法结束怎么破?

    最近THINKPAD T460P更新了WIN10周年版后程序各种卡死,运行一段时间,各种程序就开始崩溃,进程无法结束,最终只能强制关机. 这个BUG微软已经确认了,安装了SSD+HDD双硬盘的WIN1 ...

  9. 64位系统 IIS中应用程序池设置导致 访问数据库错误

    64 位操作系统不支持Microsoft OLE DB Provider for Jet驱动程序,也不支持更早的Microsoft Access Driver (*.mdb)方式连接.导致程序里面的数 ...

  10. NetBIOS与Winsock编程接口

    最近在看网络编程方面的书,由于不是通信专业出身的,以前理解的网络体系感觉就是tcp/ip,最近工作上接触到了一些光环网等乱七八糟的东西,有些基本的LC.SC连接器都不认识.花时间看了下计算机网络体系结 ...