jsp页面传值中文乱码问题
类似于...*.do?name=${name}&title=${title} 链接
然后这里的name和title都是汉字。。。
真是奇怪了!我试验的时候,有时候是四个及以下的汉字就没错,超过四个就提交有问题。后来我限制我四个以内之后,NND居然只有两个和两个以内的汉字提交才成功!!超过就出错!!不晓得怎么回事?
我想一个可能是我吧tomcat里面的URIEncoding="UTF-8" 的原因。。。但是又有其他乱码。。。乱码问题都烦死了!!!请高手解决下上面的乱码问题!!谢谢!!
------解决方案--------------------你用get来请求吗?试试post
------解决方案--------------------自己写一个过滤器:
public class DoFilter implements Filter
{
public void destroy() {
}
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws
IOException,
ServletException {
arg1.setCharacterEncoding("GBK");
arg2.doFilter(arg0, arg1);
}
public void init(FilterConfig arg0) throws ServletException {
}
}
在web。xml中配置:
<!-- 过滤器 -->
<filter>
<filter-name>encodingFilter </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>
<filter-mapping>
<filter-name>encodingFilter </filter-name>
<url-pattern>*.jsp </url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>encodingFilter </filter-name>
<url-pattern>*.do </url-pattern>
</filter-mapping>
------解决方案--------------------对接收的参数值进行new String(name.getBytes());
------解决方案--------------------页面传值是用的超链接的话
最好多超链接编码
URLEncoder.encode("xxx.do?xxx","UTF-8");