日期:2014-05-18  浏览次数:20941 次

request的编码方式是如何被确定的?
客户端向服务器发送的一个request,究竟是什么编码方式?书上提到默认为iso-8859-1,那也就是是也可能是有其他的编码方式,这是如何被指定的?谢谢!!

------解决方案--------------------
一般将下面这将句加上即可,除了utf-8,还有GBK,gb2312等
<%@ page contentType= "text/html;charset=UTF-8 " %>
<%request.setCharacterEncoding( "utf-8 ");%>
------解决方案--------------------
request.setCharacterEncoding( "utf-8 ")在TOMCAT5 中只能对POST方式起作用。
------解决方案--------------------
客户端发送的是请求头,而参数会根据你当前页面的编码方式进行编码之后发送给服务器
如果是utf-8,那就会根据utf-8进行编码发送给服务器.

如果是jsp文件可以用page指令的contentType属性来设置显示的编码方式.
html文件可以利用 <meta> 标签模拟请求消息头

而tomcat服务器是默认采用iso-8859-1来对请求消息进行解码的,如果前后不一就很容易出现乱码问题.如果是post请求只需要设置request.setCharacterEncoding()与请求消息编码前的编码方式一样就可以.
如果是get请求,tomcat默认的是用iso-8859-1来进行解码,此时request.setCharacterEncoding()不起作用,可以在tomcat的server.xml的Connector元素的useBodyEncodingForURI= "true "使得起作用