读书人

jsp页面传值中文乱码有关问题

发布时间: 2012-10-06 17:34:01 作者: rapoo

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");

读书人网 >J2EE开发

热点推荐