1.问题描述
最近在海南做一个项目,当时出现了在java后台中文数据是正常的,但在页面展示时却是乱码。我在页面中也设置了数据类型“utf-8”,但还是没有用处。后来在网上查一资料才找了比较好的解决方法。
2.解决方法:
方法一:修改tomcat配置,在server.xml中找到<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>内容,并将标红的内容加入即可。不过此种方法只能局限于用tomcat的项目中,如果后期项目迁移到其他服务还是会出现乱码问题,所以对项目的迁移性会造成不好影响。
方法二:在web.xml中配置
<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>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>*.*</url-pattern>
</filter-mapping>
方法三:将工程设置成utf-8或者gbk
方法四: 如果是在页面中出现乱码,那我建议在页面有中文数据的参数前加入encodeURI(),例如:encodeURI('内存利用率')。通过此方法对数据进行一次解码就可以解决乱码问题。
方法五:如果是在java后台产生乱码,那可以通过String id = new String(str.getBytes("ISO8859-1"), "utf-8");此方法解决。