Tomcat产生乱码的解决方法
2011-09-08 16:32
375 查看
Tomcat在处理GET和POST请求时产生的乱码解决的方法有两个:
1. 将GET请求改成POST请求,然后就可以使用request.setCharacterEncoding方法设置编码,并使用request.getParameter方法直接获得中文请求参数了。2. 不用改GET请求,在Servlet中使用如下的代码来得到中文请求参数。
String name = new String(request.getParameter("name").getBytes("ISO-8859-1"), "GBK");
综上所述,如果使用了GET请求,则setCharacterEncoding方法不起作用,只能使用上面的代码来解决,而使用POST请求,尽管
setCharacterEncoding方法起作用,但使用上面的代码仍然好使(在这时不能使用setCharacterEncoding方法将编码格
式设置成非iso-8859-1格式)。因此,如果想让Servlet可以同时处理GET和POST请求中的中文信息,除了判断这两种方法外,还可以使用
上面的代码来同时处理这两种请求的中文信息。
考试大建议使用如下的代码来获得中文请求参数:BB霜的好处有哪些?
String name = new String(request.getParameter("name").getBytes("ISO-8859-1"), "GBK");
因为上面的代码是利用了Java的编码能力,对于所有的Web服务器都会有效,而setCharacterEncoding方法是通过Web服务器支持的,并不是所有的Web服务器都会对该方法有很好的支持。
request.setCharacterEncoding():是设置从request中取得的值或从数据库中取出的值。
指定后可以通过getParameter()则直接获得正确的字符串,如果不指定,则默认使用iso8859-1编码。值得注意的是在执行
setCharacterEncoding()之前,不能执行任何getParameter()。而且,该指定只对POST方法有效,对GET方法无效。
分析原因,应该是在执行第一个getParameter()的时候,java将会按照编码分析所有的提交内容,而后续的getParameter()不再
进行分析,所以setCharacterEncoding()无效。而对于GET方法提交表单是,提交的内容在URL中,一开始就已经按照编码分析提交内
容,setCharacterEncoding()自然就无效。get需在Tomcat的server.xml中的:<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"URIEncoding="GBK" />)加入URIEncoding="GBK",解决get请求乱码问题 response.setContentType("text/html;charset=gb2312")是设置页面中为中文编码。 前者是设置动态文字(参数,数据库),后者设置页面静态文字有什么美白的简单面膜吗?response.setContentType指定 HTTP 响应的编码,同时指定了浏览器显示的编码. response.setCharacterEncoding设置HTTP
响应的编码,如果之前使用response.setContentType设置了编码格式,则使用
response.setCharacterEncoding指定的编码格式覆盖之前的设置.与response.setContentType相同的
是,调用此方法,必须在getWriter执行之前或者response被提交之前.
相关文章推荐
- liferay-tomcat注册服务的方法和之后产生的乱码问题的解决办法
- liferay-tomcat注册服务的方法和之后产生的乱码问题的解决办法
- 关于Ajax在websphere环境中提交中文产生乱码解决方法
- JAVA以UTF-8导出CSV文件,用excel打开产生乱码的解决方法
- JAVA以UTF-8导出CSV文件,用excel打开产生乱码的解决方法
- tomcat+SSH中遇到中文乱码的解决方法
- Tomcat窗口标题,中文乱码解决方法
- Tomcat乱码解决方法
- Linux terminal及Putty中backspace键产生乱码的解决方法
- linux下tomcat部署get请求乱码问题解决方法
- Struts+Mysql+Tomcat5.0.28+mysql-connector-java-3.0.16-ga-bin.jar 国际化乱码解决方法
- Servlet + Tomcat 中文乱码的原理和解决方法
- Tomcat'sURL中传递中文参数乱码的解决方法!
- Struts+Mysql+Tomcat5.0.28+mysql-connector-java-3.0.16-ga-bin.jar 国际化乱码解决方法
- 升级tomcat后出现的页面录入框中文乱码问题解决方法
- tomcat项目中文乱码问题解决方法
- linux下tomcat部署get请求乱码问题解决方法
- Tomcat中文乱码问题的原理和解决方法
- 运行 Tomcat, 在 Intellij IDEA 控制台输出中文乱码的解决方法
- tomcat 中文乱码filter解决方法