解决中文乱码问题


1.最基本的在jsp页面上要把pageEncoding设置为中文,如: <%@ page language="java"pageEncoding="GBK"%> , t# s5 r6 ~4 b9 E' t4 `

' c% S0 m: `% d2 i0 M& \( t2.对于表单的doPost()提交,也会出现中文出现乱码,可以在servlet里设置如下:request.setCharacterEncoding("GBK"),response.setCharacterEncoding("GBK"),不过此方法在每个servlet都要设置,很麻烦,建议写个过滤器设置。可以参考以下: ! u- y) r: J1 A0 V5 |0 y( K' v
    public void doFilter(ServletRequest request,ServletResponse response,
' d6 s4 k+ a8 M4 m4 d6 vFilterChainchain) throws IOException, ServletException { - D0 e; Y0 w5 s2 D0 j5 b% @

/ X) u5 A0 ?% m: M% y& SHttpServletRequestrequest_1 = (HttpServletRequest) request; & I5 Y2 \8 F0 ~: U
HttpServletResponse response_1 = (HttpServletResponse) response;
9 J0 x5 {: B; H: f- x
8 z4 {' C7 rt4 h// 转换编码,并且加上去缓存 / F. s3 _6 U7 j* d- p. h
request_1.setCharacterEncoding("GBK"); . ~) j. M6 x6 ]3 J% M
response_1.setCharacterEncoding("GBK"); ( D$ [! [' @, N8 u8 m
chain.doFilter(request, response); % u* ]2 v' [2 t; @

3 T( _# `5 d: j* l}
3 C# h. K- M" u5 b; Z3、第三种就是 如果用doGet()提交,后面跟的参数如果也是中文,这个解决方法可以在tomcat或JBoss的配置文件里面配置,以tomcat为例: / dd) Z! \; M
     <Connector port="8099"maxHttpHeaderSize="8192" 2 N# `( m3 l% X& y" g
maxThreads="150" minSpareThreads="25"maxSpareThreads="75" 2 D+ X& Q+ t9 x( t$ J3 k7 B
enableLookups="false" redirectPort="8443"acceptCount="100"
0 ^* D5 w3 U9 h8 O6 V/ h* ? connectionTimeout="20000" disableUploadTimeout="true"URIEncoding="GBK"/> . y- u3 b7 F3 w4 W4 O
  在这里面最后加上URIEncoding="GBK".
. y0 z/ d2 h% C4、ajax也会产生乱码问题,这个问题可以在tomcat的配置那里解决。
) ^4 [1 N& e0 u6 m
# J- i2 ]$ Y2 g" B% L# U( S5、文件上传时文件名也会出现乱码。 : f. W0 [5 `; d7 a* z9 u
可以用此方法paramMap.put(fi.getFieldName(), newString(fi.getString().getBytes("ISO-8859-1"),"GBK"));

你可能感兴趣的:(中文乱码)