test.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<form action="result.jsp" method="post">
<input type="text" name="message" />
<button type="submit" >提交</button>
</form>
result.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%=request.getParameter("message") %>EncodingFilter.javaString encoding = filterConfig.getInitParameter("encoding");//UTF-8
req.setCharacterEncoding(encoding);
res.setCharacterEncoding(encoding);
chain.doFilter(req, res);
过滤器也去了, 输出编码也是utf-8 ,jsp 页面中中文可以显示, 可是为啥表单提交后(post) 就老是乱码呢。 tomcat 配置文件也改过了, 还是乱码。
还有可能是什么问题造成的呢???
急 啊
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<form action="result.jsp" method="post">
<input type="text" name="message" />
<button type="submit" >提交</button>
</form>
result.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%=request.getParameter("message") %>EncodingFilter.javaString encoding = filterConfig.getInitParameter("encoding");//UTF-8
req.setCharacterEncoding(encoding);
res.setCharacterEncoding(encoding);
chain.doFilter(req, res);
过滤器也去了, 输出编码也是utf-8 ,jsp 页面中中文可以显示, 可是为啥表单提交后(post) 就老是乱码呢。 tomcat 配置文件也改过了, 还是乱码。
还有可能是什么问题造成的呢???
急 啊
解决方案 »
- 小弟问个SSH多表操作问题
- strut2.3.12文件上传问题
- java.sql.SQLException: No suitable driver found for oracle:jdbc:thin:
- JAVA SSH框架真的那么方便么,有没有更好用的啊?
- hibernate的getJdbcTemplate().queryForList查询50W数据要20s。。。
- spring配置文件问题
- 启动glassfish2服务器时报异常java.lang.ClassNotFoundException:com.sun.ejb.containers.TimerBean_2100919770_ConcreteImpl
- WEBLOGIC下EJB错误各位帮我看看
- 关于Jquery Ajax异步请求的属性探讨
- hibernate 级联配置的问题,困扰好久了
- jbpm4.4
- 使用JavaMail需要那些架包, 有的话直接发给我邮箱
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8" />
//--------------------------------
应用程序中的web.xml 加过滤器:
<filter>
<filter-name>setEncodeFilter</filter-name>
<filter-class>comm.util.SetEncodeFilter</filter-class>
<init-param>
<param-name>defaultencoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
乱码也就是编码错误 和解码错误 要是????这样的一定是编码错误 这样就是你输入的地方有问题了
还有就是解码了 那就要看看接受的问题了
你试试这样 还有你的过滤器 看看你过滤设置的对吗!!!!
// 配置全站统一的字符编码
String encoding = filterConfig.getInitParameter("encoding");
response.setCharacterEncoding(encoding);
response.setContentType("text/html;charset=" + encoding);
request.setCharacterEncoding(encoding); // 只能解决post方式提交的参数乱码问题
加上了 response.setContentType("text/html;charset=" + encoding);
也不行。。 session 和request 的 setAttribute() 方法 中添加中文参数 再通过getAttribute()可以正确获取到。 这是为啥呢?????
以前遇到过,不记得了,明天上午帮你看看。。好像是用ajax弄得还是js了。。明天看了告诉你。。
res.setContentType(("text/html;charset="+encoding );
req.setCharacterEncoding(encoding);
chain.doFilter(req, res);
在jsp/servlet的上用System.out.println();把获得的参数输出看看?
firebug看一下post的的参数有问题没?
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8" />
少了一句话、、
你找找、
也不知道 什么=true 、
忘了
<%@ page language="java" import="java.util.*"
pageEncoding="UTF-8" contentType="text/html;charset=UTF-8" %>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
正确的取法: String str = new String(getParameter("message").getBytes("ISO-8859-1"),"UTF-8")
1、SSH2 框架,struts.xml 配置只配了
<constant name="struts.i18n.encoding" value="UTF-8" />,其他的编码配置都没配(暂时还没 get 请求提交中文参数的情况,不知是否会乱码);
2、jsp 页面 post 提交一个表单,该表单包含 address 字段,其字段值为中文;
3、action 接收该字段,即
private String address;
getter...
setter...
4、直接打印输出发现是乱码,就按这位说的方法试了一下:
String str = new String(address.getBytes("ISO-8859-1"),"UTF-8");然后打印输出 str 字段,结果正常。
最后,谢谢这位兄台的指导方法。
正确的取法: String str = new String(getParameter("message").getBytes("ISO-8859-1"),"UTF-8")
这个答案是正确的
String str = new String(getParameter("message").getBytes("ISO-8859-1"),"UTF-8")