setCharacterEncoding和setContentType

request.setCharacterEncoding()是设置从request中取得的值或从数据库中取出的值 
response.setContentType("text/html;charset=gb2312")是设置页面中为中文编码 
前者是设置动态文字(参数,数据库),后者设置页面静态文字

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

response.setContentType 
设置发送到客户端的响应的内容类型,可以包括字符编码说明. 
也就是说在服务器端坐了这个设置,那么他将在浏览器端起到作用,在你打开浏览器时决定编码方式 
如果该方法在response.getWriter()被调用之前调用,那么响应的字符编码将仅从给出的内容类型中设置。该方法如果在response.getWriter()被调用之后或者在被提交之后调用,将不会设置响应的字符编码,在使用http协议的情况中,该方法设置 Content-type实体报头  

response.setCharacterEncoding设置响应的编码 
如果服务器端使用response.setContentType设置了编码格式, 
那么应该使用 response.setCharacterEncoding指定的编码格式,这样就会把之前的设置屏蔽掉 

一般建议设置response.setCharacterEncoding 
response.setContentType 经常会遇到失效的情况(设置了 但是经常不起作用)

posted on 2011-05-25 14:27  人民同伴  阅读(2123)  评论(0编辑  收藏  举报

导航