日期:2014-05-17  浏览次数:20921 次

jsp <input text> post提交到action 中文乱码
我在jsp的页面中有一个<input type="text" name="name" id="name"/>  然后post方式提交到action,在action中String name接收,但name却是乱码,如何解决?

环境:tomcat6+jdk1.6+myeclipse6.5+struts2 

我已试过如下方法:
1、在jsp页面中加<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%>  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
2、把java改成utf-8

------解决方案--------------------
String str= new String((req.getParameter("XXX")).getBytes("ISO-8859-1"),"UTF-8")这样试下    UTF-8可以换成你要的
------解决方案--------------------
request.setCharacterEncoding("utf-8");
------解决方案--------------------
改成gb2312
------解决方案--------------------
可以试一下GB2312 格式
------解决方案--------------------
struts2中的拦截器,处理一下,网上有源码!
------解决方案--------------------
引用:
同时输入中,英,和数字,只有中文是乱码,其他的都正常

乱码一般不都这样吗?
做个过滤器。。统一utf-8
js提交的话重新编码一下
一般不会出现乱码了。。。
------解决方案--------------------
可以试试用jstl的<c:url>标签来传中文
------解决方案--------------------
写个过滤,request.setCharacterEncoding("utf-8");过滤下就行了。
------解决方案--------------------
一看数据库 不是 UTF-8 哈哈
------解决方案--------------------
对不起  没看清楚题目  action乱码  
------解决方案--------------------
在跳转页面 在获取第一个参数前加上
request.setCharacterEncoding("GBK");

------解决方案--------------------
在国内一般你用 gb2312 编码,也可以的。
------解决方案--------------------
在web.xml中设置
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>

服务器中server.xml中 设置   URIEncoding="UTF-8"  试试
------解决方案--------------------
public class EncodingFilter implements Filter
{

public void destroy()
{
}

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOExceptionServletException