URLDecoder: Incomplete trailing escape (%) pattern问题处理
http://blog.csdn.net/yangbobo1992/article/details/10076335
________________________________________________________
最近在用的项目中,分页页面在导出excel抛出
java.lang.IllegalArgumentException: URLDecoder: Incomplete trailing escape (%) pattern
该页面采用的是DWR分页,经过一番搜罗,终于修成正果.解决办法
大致意思都懂了,我们只需要将传入后台的参数字符在decode之前使用replaceAll('%','%25')一下即可
- try {
- pageTitle = java.net.URLDecoder.decode(pageTitle,"UTF-8");
- sc = java.net.URLDecoder.decode(sc ,"UTF-8");
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- }
修正后代码如下:
- try {
- pageTitle = java.net.URLDecoder.decode(pageTitle.replaceAll("%", "%25"),"UTF-8");
- sc = java.net.URLDecoder.decode(sc.replaceAll("%", "%25") ,"UTF-8");
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- }
特别注意:
有些时候导出excel时采用的是get方式导致URL字符串长度过长,改用POST方式可以解决以上问题。
使用js实现POST表单提交代码片段:
- function post(URL, PARAMS)
- {
- //创建一个临时表单
- var tempForm = document.createElement("form");
- tempForm.action = URL;
- tempForm.method = "post";
- tempForm.style.display = "none";
- //遍历各个参数,将文本域添加至表单中
- for (var x in PARAMS)
- {
- var opt = document.createElement("textarea");
- opt.name = x;
- opt.value = PARAMS[x];
- tempForm.appendChild(opt);
- }
- //将表单添加至当前页面中.
- document.body.appendChild(tempForm);
- //提交表单.
- tempForm.submit();
- }
也可参照此方法解决:http://blog.csdn.net/zhensoft163/article/details/7298161
URLDecoder: Incomplete trailing escape (%) pattern问题处理的更多相关文章
- URLDecoder: Incomplete trailing escape (%) pattern
在使用URLDecoder对字符串进行解码的时候 报以下异常信息: Exception in thread "main" java.lang.IllegalArgumentExce ...
- URLDecoder: Illegal hex characters in escape (%) pattern - For input string
原因:后台发布文章的时候,内容里面有%,导致后台URLDecoder.decode()转码的时候报错. 看了java.net.URLDecoder的decode()的源码,原来是转码错误. 贴出部分代 ...
- java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: " 0"
value = URLDecoder.decode(request.getParameter(paraName), "UTF-8"); 前端用了 encodeURI 来编码参数,后 ...
- java转换编码报错java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern
Exception in thread "main" java.lang.IllegalArgumentException: URLDecoder: Illegal hex cha ...
- java上传附件含有%处理或url含有%(URLDecoder: Illegal hex characters in escape (%) pattern - For input string)
在附件名称中含有%的时候,上传附件进行url编码解析的时候会出错,抛出异常: Exception in thread "main" java.lang.IllegalArgumen ...
- URLDecoder异常Illegal hex characters in escape (%)
URLDecoder对参数进行解码时候,代码如: URLDecoder.decode(param,"utf-8"); 有时候会出现类似如下的错误: URLDecoder异常Ille ...
- URLDecoder异常解决方法
URLDecoder对参数进行解码时候,代码如: URLDecoder.decode(param,"utf-8"); 有时候会出现类似如下的错误: URLDecoder异常Ille ...
- URL编码 URLEncoder 示例
2016-12-27 对字符编码时的规则 通常如果一样东西需要编码,说明这样东西并不适合传输.原因多种多样,如Size过大,包含隐私数据. 对于Url来说,之所以要进行编码,一个是因为Url中有些字符 ...
- JAVA判断URL地址是否非法
/** * 判断请求url是否非法 * @param url * @return */ public static boolean isValidRequestUri(String url) { if ...
随机推荐
- flex 无法将“<mx:>”解析为组件执行.解决方法
转自:http://www.myexception.cn/flex/434924.html 问题描述: flex项目导入早期版本 无法将“<mx:******>”解析为组件执行. 如图: ...
- Unity3d中使用log4net
原地址:http://www.cnblogs.com/koalaylj/archive/2012/09/04/2670629.html 最近在用unity3d开发Android上的游戏,一直Debug ...
- 算法笔记_046:跳台阶问题(Java)
目录 1 问题描述 2 解决方案 2.1 递归法 2.2 迭代法 1 问题描述 一个台阶总共有n级,如果一次可以跳1级,也可以跳2级,求总共有多少种跳法. 2 解决方案 2.1 递归法 如果整个台 ...
- 三次握手的第三个ACK包丢了,TCP的处理方式
众所周知,TCP建立采用的是三次握手.最近在看论文的时候,突然想到,如果第三个ACK报文丢失了,TCP建立是否还会成功?TCP是如何处理的呢?在网上搜了一圈,看到了这篇文章: 三次握手的第三个ACK包 ...
- Oracle 计算表占用空间大小
我们可以通过系统视图DBA_SEGMENTS.USER_SEGMETNS.DBA_TABLES来查看一个表所占空间的大小,如下所示: SELECT SEGMENT_NAME TABLE_NAME ,S ...
- OFBiz:添加实体栏位
如何添加实体栏位?这里演示为PostalAddress添加planet栏位.打开applications/party/entitydef/entitymodel.xml,找到PostalAddress ...
- Ubuntu分区方案归总
更新时间:2010-8-26 一.各文件及文件夹的定义 /bin:bin是binary(二进制)的缩写.存放必要的命令 存放增加的用户程序. /bin分区,存放标准系统实用程序. /boot: ...
- HTTP 错误状态码讯息
HTTP 错误讯息解读 4xx: Client Error 使用者端(浏览器)错误讯息 错误码 错误讯息说明 400 Bad Request 错误的要求 401 Unauthorized ...
- C#实现分片上传文件
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.IO ...
- mosquitto ---配置SSL/TLS
在服务器电脑上面创建myCA文件夹, 如在/home/qa/ 文件夹下使用命令, mkdir myCA 然后执行以下命令,我们将创建并使用其他用户没有权限访问的目录. sudo chmod 700cd ...