关于SSH中文乱码的一个小总结

xiaoxiao2022-06-11  33

最近在学习SSH,练习中多次出现中文乱码问题,使用spring的编码过滤器也一度没解决问题,搞得我差点就自己写过滤器了,但想想自己既然是在学SSH就应该尽量SSH的东西,最后还是解决了,现在把对spring编码过滤器的作用总结一下作为自己的学习笔记,希望对那些我一样刚学习SSH的新手有点帮助,也希望有人来指出我的错误理解. spring的编码过滤器是org.springframework.web.filter.CharacterEncodingFilte 1、作用时需要在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>GBK</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>/*</url-pattern> </filter-mapping> (我在练习时一般只用中文跟英文,没去考虑国际化,所以一般是用GBK,因为它是大陆官方发布的字符集,对中文的支持比UTF-8要好,如现实开发,一般还是用UTF-8。) 配置过滤器时,还要注意的地方就是要把本配置放在web.xml过滤器配置的第一位,有其它过滤器配置在它的前面,可能会有干扰。原因我也不清楚。 2、 配置好web.xml后,接着就是在struts.properties加上struts.i18n.encoding=GBK 如果是用UTF-8,就不用了,因为默认就UTF-8,这里我有点疑问,就是有人跟我说struts2 在这里配了,就可以了,根本不用配置过滤器,但我还是在action接参时遇到乱码,所以我索性全配上。 3、在Myeclipse下把工程属性的Text file encoding也设为GBK,默认就是GBK.再就是页面也统一设为GBK。这样配置后,乱码问题一般就没问题了 最后就是页面的请求方式一定要记得显式设为POST哦 <form action="" method="post"> 虽然默认是post方式,但不显式设置也可能出现乱码。好了就写这么多吧,希望大家拍砖。</form>
转载请注明原文地址: https://www.6miu.com/read-4930498.html

最新回复(0)