jsp提交中文乱码的问题

最近新建了一个web工程,但是提交中文信息的时候却乱码了,纠结了很久,网上的方法也都试过了,还是没有效果。。。。

不过还是解决了,总结一下:


1.关于页面本身显示就乱码的,可以在页面添加以下信息:

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

加了之后是一定可以解决的


2.提交jsp中文信息到服务器乱码

我就是遇到了这种情况,在网上copy了以下代码:

<span style="white-space:pre">	</span><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>


可是没有解决,后面将eclipse的所有设置都设置成了UTF-8,还是没用,项目编码改了,没用,浏览器编码改了,没用。

最后连tomcat的编码也改了,还是没用。。。。。。绝望中,连tomcat也换了好几个版本去试,依然没用。


后来看到有说在页面设置request提交时的编码,依然没用。

最后再服务器端测试,看看到底jsp提交过来的编码是什么,后来发现:

System.out.println(new String (menu.getMenuName().getBytes("ISO-8859-1"),"UTF-8"));

通过这种方式拿到了正确的中文,说明我的设置完全没起作用,准备使用过滤器的时候,发现我的spring转换编码的过滤器没起作用,少了

<span style="white-space:pre">	</span><filter-mapping>
	  	<filter-name>CharacterEncodingFilter</filter-name>
	  	<url-pattern>/*</url-pattern>
	</filter-mapping>

这么一段代码。。。。。。。怪别人代码没写全,更怪自己大意了。。。。。。。。。

加上之后就果断好了。

猜你喜欢

转载自blog.csdn.net/pifengyz/article/details/40405081