JSP POST传参(乱码) 为何是ISO8859_1
A 页面:
HTML code
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<% response.setCharacterEncoding("UTF-8"); %>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<form action="B.jsp" method="post">
<input type="submit" name="submit" value="中文" />
</form>
B 页面:
HTML code
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<% request.setCharacterEncoding("UTF-8"); %>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<!-- 请问 #P1 为何乱码 -->
<p id="p1"><%=request.getParameter("submit")%></p>
<!-- 请问 #P2 为何要重建字符串?以前听说POST传参只需设置request编码,为什么是ISO8859_1?-->
<p id="p2"><%=new String(request.getParameter("submit").getBytes("ISO8859_1"), "UTF-8")%></p>
------解决方案--------------------
为什么是8859-1
request.getParameter("submit")就可以了啊。
------解决方案--------------------<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<% request.setCharacterEncoding("UTF-8"); %>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
你首先要搞清楚这几个编码的作用
http://apps.hi.baidu.com/share/detail/33081081
------解决方案--------------------引用:
<%--
我的设置不正确吗?编码作我是知道的,我的问题是:Method=POST发送,接收数据时为什么不是UTF8,而是ISO8859_1...
--%>
<!-- 请问 #P2 为何要重建字符串?以前听说POST传参只需设置request编码,为什么是ISO8859_1?-->
<p id="p2"><%=new String(request.getParameter("submit").getBytes("ISO8859_1"), "UTF-8")%></p>
如果不指定编码的话,默认编码就是ISO8859-1。
看下这篇文章:
http://cosmo1987.iteye.com/blog/1116959
------解决方案--------------------浏览器会先转到tomcat中 tomcat 配置文件中的默认编码格式 就是 iso88591
------解决方案--------------------+1
------解决方案--------------------在service.xml修改编码格式
<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true"/>
------解决方案--------------------