解决URL参数中的%问题(org.apache.tomcat.util.http.Parameters processParameters Paramete)
程序员文章站
2022-07-07 13:09:05
...
测试最近的代码发现,有一个servlet处理通过post方式传递过来的参数的时候偶尔出现乱码,并提示错误“org.apache.tomcat.util.http.Parameters processParameters Parameters: Character decoding failed”,开始以为是编码问题,google了一大堆关于编码的问题,各种测试还是无法解决这个问题。于是把出错的参数调了出来用类似二分法的方式慢慢筛查参数,最后锁定在参数中的%上,因为要传递的参数不是经常出现%,所以就出现偶尔出错的现象。解决方法就是把参数中的“%”替换为“%25”,修改代码为
,问题解决。
下面附录是URL中的特殊字符:
- parameter = parameter.replace("%","%25")
下面附录是URL中的特殊字符:
- URL中一些字符的特殊含义,基本编码规则如下:
- 1、空格换成加号(+)
- 2、正斜杠(/)分隔目录和子目录
- 3、问号(?)分隔URL和查询
- 4、百分号(%)制定特殊字符
- 5、#号指定书签
- 6、&号分隔参数
- 如果需要在URL中用到,需要将这些特殊字符换成相应的十六进制的值
- + %20
- / %2F
- ? %3F
- % %25
- # %23
- & %26
<iframe style="font-size: 12px; line-height: 18px;" src="http://lwjlaser.iteye.com/iframe_ggbd/187" frameborder="0" scrolling="no" width="468" height="60"></iframe>
上一篇: Velocity的特殊字符
下一篇: java处理html32个特殊字符