解决URL中参数乱码问题
来源:互联网 发布:解除马赛克的软件 编辑:程序博客网 时间:2024/06/11 10:05
Get提交方式,传递参数乱码
例如:想使用重定向URL,response.sendRedirect(req.getContextPath()+"/index.jsp?info=请您先登录");
这样,在index.jsp中显示info内容时,往往会出现乱码,这是由于tomcat默认采用ISO-8859-1对URL进行编码,而浏览器默认不采用任何编码;另外还有除了字母,数字,以及一些标点符号外,其他字符在URL中传递过程中都是不安全的,可能会被浏览器当作参数的分隔符来解析,因此,对get方式传输中文,应该对中文信息进行编码,使用java.net.URLEncoder.encode("中文","utf-8");
如下所示:
res.sendRedirect(req.getContextPath()+"/index.jsp?info="+java.net.URLEncoder.encode("请您先登录", "UTF-8")) ;
然后,在index.jsp页面中显示info信息时,应该解析编码:
info = URLDecoder.decode(info,"utf-8") ;
info = new String(info.getBytes("ISO-8859-1"),"utf-8") ;
这样,显示出的info就不是乱码了
另外,可以修改tomcat的默认编码方式,如下所示:(server.xml中)
修改:
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1"
redirectPort="8443"/>
为:
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1"
redirectPort="8443" useBodyEncodingForURI="true" URIEncoding="UTF-8"/>
然后:
res.sendRedirect(req.getContextPath()+"/index.jsp?info="+java.net.URLEncoder.encode("请您先登录", "UTF-8")) ;
然后,在index.jsp页面中显示info信息时,应该解析编码:
info = URLDecoder.decode(info,"utf-8") ; 即可正常显示了
Tomcat5.0以后,get方式传递参数和post方式传递参数的默认编码方式不同,使用useBodyEncodingForURI="true"将它们的编码方式设置为一致。
- 解决URL中参数乱码问题
- java 中解决url参数传递中文乱码问题
- jquery获取URL中参数,解决中文乱码问题
- android url中中文参数乱码问题的解决
- jquery获取URL中参数,解决中文乱码问题
- ajax 解决url中文参数乱码问题
- 解决URL传输参数乱码问题
- 解决url汉字参数乱码问题
- 解决URL中文参数乱码的问题
- 解决URL中文参数乱码的问题
- 解决url传递中文参数乱码问题
- 解决Url带中文参数乱码问题
- 解决Url带中文参数乱码问题
- 解决Url带中文参数乱码问题
- URL传参数解决中文乱码问题
- 解决Url带中文参数乱码问题
- dtree中url参数中中文参数的传递,出现乱码问题的解决。
- js中url中文参数乱码问题
- 软件架构视图
- 关于延迟签名实现的技术
- 懒加载异常org.hibernate.LazyInitializationException: could not initialize proxy - no 详解
- xloadtree 生成树形菜单
- 一个jquery的选项卡详解
- 解决URL中参数乱码问题
- CreationName for SSIS 2008 and adding components programmatically
- SiUSBXp.dll的
- .NET设计模式系列文章
- 计算机图形学MFC画圆zz
- ZZ~华为的魔鬼式培训
- 系统V共享内存
- 羽球5
- 搜索引擎使用技巧