日期:2014-05-19  浏览次数:20655 次

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