整理资料的时候发现自己以前写的一份开发bs时乱码处理的方法,想想也许对java新人有些作用在这里发表一下。
最近在开发中为了开发方便把原先编码做了些更改,其实处理起来很简单,但是在实际开发过程中,很多人往往不是很注意这个问题,大体上可以分为两步去处理:
(一)filter过滤//这一步主要处理的是post提交乱码问题
①、程序代码这里我就不去写了(最近忙了些 呵呵自然也就懒了一点),在tomcat下可以找到这个文件
\webapps\jsp-examples\WEB-INF\classes\filters\SetCharacterEncodingFilter.java
②、在项目的配置文件中(web.xml)
<filter>
<filter-name>EncodingFilter</filter-name>//名字随便起但要和<filter-mapping>中的名字一致
<filter-class>这里放你的filter路径<filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
(二)如果你发现在页面传值的时候乱码依然存在那么你需要在tomcat中的server.xml文件中找到下面这个位置加上(useURIValidationHack="false" URIEncoding="GB2312")
<Connector acceptCount="100" c debug="0" disableUploadTimeout="true" enableLookups="false" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" port="80" redirectPort="8443" useURIValidationHack="false" URIEncoding="GB2312" />
我目前用的服务器是5.028所以需要设置这个地方,如果是5.5的好象是默认有useBodyEncodingURI="true" 这样的话就不需要处理这个地方,或者直接把(useURIValidationHack="false" URIEncoding="GB2312")改成useBodyEncodingURI="true"可以实现相同的效果,这个地方可以同时处理get提交乱码问题