在JSP接收URL传过来的参数时,总是拿到乱码,查看了网上很多的方法均无解。
试过title=new String(request.getParameter("title").getBytes("ISO-8859-1"),"utf-8");
本地测试title=new String(request.getParameter("title").getBytes("ISO-8859-1"),"gb2312");//本地正常//服务器乱码
研究一下午最终发现竟然是拦截器把接收参数先做了一次编码转化,转化成了UTF-8。
解决方案:
在头部重新定一下接收参数的编码
request.setCharacterEncoding("gb2312");
问题解决
需注意的是所有编码均需要统一
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
由于中文字符在URL参数里面先被解析成了gb2312
如:
http://service.weibo.com/share/share.php?title=%E7%BA%B5%E8%A7%88%E6%B1%BD%E8%BD%A6%E8%A1%8C%E4%B8%9A%E6%9C%80%E6%96%B0%E8%B5%84%E8%AE%AF%EF%BC%8C%E9%A2%86%E7%95%A5%E5%A5%A5%E8%BF%AA%E7%A7%91%E6%8A%80%E9%AD%85%E5%8A%9B%E3
如果不设置成gb2312接收,直接接收必然会被转成UTF-8
所以设置
request.setCharacterEncoding("gb2312");
String title=request.getParameter("title")!=null?request.getParameter("title").trim():"";
此时title内容拿到的中文正常
还有一点需要注意的是:
现在在IE6以上版本URL要求比较严格
? 不能出现多次,得用gb2312转码后的字符代替%3F
其它特殊字符最后先都转一下码,不然有可能打不开网页。
分享到:
相关推荐
主要介绍了JSP页面传参出现中文乱码的解决方案,非常实用,需要的朋友可以参考下
jsp传参 servlet接收中文乱码问题的解决方法.docx
jsp使用URL编码传递中文参数乱码问题
JSP struts2 url传参中文乱码解决办法.docx
jsp页面传参乱码的解决方法 jsp页面js: encodeURIComponent要使用两次encodeURIComponent(encodeURIComponent(userAccount)); java:String userAccount = java.net.URLDecoder.decode(userAccount,”UTF-8″);/*...
毕竟数据是根本嘛,首先我用的是hibernate+servlet,但是在jsp页面传参到servlet的时候中文一直乱码,我尝试了好多方法,最后还是解决了。 第一,首先看清项目的编码,jsp页面的编码 第二,修改tomcat 下面的server....
1.传递参数: 代码如下: var pmt = ‘sensor=’+ encodeURI(encodeURI(sensor))... top.location.href = ‘jsp/print/diagnosticAnaPrint.jsp?’+pmt; 2.接收和解析参数 代码如下: //获取URL参数 function GetRequest()
代码如下:<?xml version=”1.0″ encoding=”UTF-8″ ?> <!DOCTYPE html PUBLIC “-//WAPFORUM//DTD XHTML ...%... charset=UTF-8″ pageEncoding=”UTF-8″%> <...@ page import=”java.net.*”%> <...
JSP struts2 url传参中文乱码解决办法 1.设置struts.xml 或是设置struts.properties(我自己没试过) struts.i18n.encoding=UTF-8 2.在web.xml添加编码过滤器 <filter>characterEncodingFilter <filter>org....
在从oracle数据库中读取数据时出现乱码,但是通过pl/sql developer查询正常。...使用过滤器进行编码转换,request.setCharacterEncoding(gb2312),能够使传参时编码转换成中文,但是从数据库中读来的中文却显示为乱码。
NULL 博文链接:https://1601844782.iteye.com/blog/2271821
jsp和servlet的整合交互(注意传参乱码问题,此处未处理中文乱码问题)
在AJAX请求URL之前 把参数进行encodeURI()转码。 如: 代码如下: var fileName=... 您可能感兴趣的文章:JSP struts2 url传参中文乱码解决办法JSP 开发之Struts2内建自定义拦截器java+jsp+struts2实现发送邮件功
介绍了jsp地址栏传中文显示乱码解决方法,有需要的朋友可以参考一下
做项目的时候,发现Action获取jsp表单中的中文参数,只要整个项目都采用UTF-8编码格式都不会出现乱码问题;但JSP中用到JS,并从JS向Action传中文参数,就会出现中文乱的现象。几经询问百度,上面说法很多。 经过实践...
4.7.3 实例:解决服务端程序读取中文请求消息的乱码问题 4.7.4 实例:用AJAX技术发送和接收中文信息 4.7.5 实例:在请求消息头和响应消息头中转输中文 4.8 小结 第5章 JSP技术 5.1 用MyEclipse编写第一个...
解决java中url传参时出现的中文乱码,在传参页面用URLEncoder.encode("","UTF-8") 在显示页面jsp页面开头加, request.setCharacterEncoding("UTF-8")