request.setcharacterencoding()和request.setcontenttype(“htmlcss;charset”)的格式区别

web开发作者:dayu日期:9天前点击:4

2、response.setContentType("text/xml;charset=GBK")是设置页面中为中文编码
前者是设置动态文字(参数,数据库),后者设置页面静态文字

response.setContentType指定 HTTP 响应的编码,同时指定了浏览器显示的编码.
response.setCharacterEncoding设置HTTP 响应的编码,如果之前使用response.setContentType设置了编码格式,则使用response.setCharacterEncoding指定的编码格式覆盖之前的设置.
与response.setContentType相同的是,调用此方法,必须在getWriter执行之前或者response被提交之前


补充:
问题1 :从Jsp页面页面传递参数到Servlet显示中文乱码
解决办法:

如果是post 方法提交 则加入以下代码:
request.setCharacterEncoding("GBK");//注意首先保证编码一至,jsp页面用什么编码在此就用什么编码(GBK/GB2312等),此代码只对post提交方式有效
response.setContentType("text/xml;charset=GBK")是设置页面中为中文编码
备注:以上两行代码必须放在PrintWriterout=response.getWriter(); 之前
get 方法提交
如变量name 用
String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"GBK");

问题2:解决get方式提交乱码问题:

修改tomcat server.xml 文件,加上红色部分代码

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="GBK"/>

备注:以上字符编码格式根据自己需要设定,只要保持一致即可

request.setcharacterencoding()和request.setcontenttype(“html/css;charset”)的格式区别

原文地址:http://www.cnblogs.com/William1121/p/7215449.html


下一篇       上一篇