1.如果在dao层和service层中显示xml数据没有乱码,在controller中出现了乱码,可以直接将xml数据转成byte数组,然后用String的构造方法里面添加charset utf-8就可以了。
2.如果在dao层中查询就存在中文乱码,那就是数据库链接的问题,在jdbc.properties中将url后添加
?useUnicode=true&characterEncoding=UTF-8
如果不行 则是数据库中本身保存编码不是utf-8,数据库中存在问题。
3.如果还是不行,将tomcat源文件中的config目录中的server.xml中redirectPort="8443"后面添加 Encoding="UTF-8"
或者在springmvc.xml中添加
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" > <property name="messageConverters"> <list> <bean class = "org.springframework.http.converter.StringHttpMessageConverter"> <property name = "supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> </list> </property> </bean>
web.xml中不要忘记编码过滤
<filter> <filter-name>hiddenHttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> </filter> <filter-mapping> <filter-name>hiddenHttpMethodFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <filter-name>httpPutFormFilter</filter-name> <filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class> </filter> <filter-mapping> <filter-name>httpPutFormFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>