Java 中文 乱码问题

Java平台遇到的两类问题:

1.源代码中文乱码问题:

  a.Java文件,中文乱码,配置IDE的Preference的编码格式,总有一款适合你。

  b.HTML(JSP、....)文件,中文乱码,添加并设置HTML的contentType、charset即可。<%@ page contentType="text/html;charset=GBK"%>

2.应用程序中输入中文乱码问题:

  a.selvert的过滤器filter处理中文乱码问题:

    修改web.xml中的配置参数:

            <filter>      <!--注意这里是filter,不要配置成servlet-->
                <filter-name>CharactorFilter</filter-name>    <!--过滤器名称-->
                <filter-class>cn.com.Filter.CharactorFilter</filter-class>  <!--过滤器的完整类名-->
                <init-param>   <!--初始化参数-->
                    <param-name>encoding</param-name>  <!--参数名称-->
                    <param-value>utf-8</param-value>   <!--参数值-->
                </init-param>
            </filter>
            <filter-mapping> <!--过滤器映射-->
                <filter-name>CharactorFilter</filter-name><!--过滤器名称-->  
                <url-pattern>/*</url-pattern><!--URL映射,给所有页面处理乱码-->
            </filter-mapping>

  b.Tomcat支持中文的配置问题: 更改 Tomcat安装目录下conf\server.xml,指定浏览器的编码格式为“简体中文”:

            <Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
            enableLookups="false" redirectPort="8443" acceptCount="100"
            connectionTimeout="20000" disableUploadTimeout="true" URIEncoding='GBK' />

 

注意:Spring MVC Controller中解析GET方式的中文参数会乱码的问题:Spring的Filter只对HTTP的Post方法做了过滤处理 ,对Get方法则未做处理,因此无论如何配置Filter均是无效的,因此只能上溯一层,即从WEB应用容器层到Tomcat层配置Server.xml的Connector的URIEconding=“UTF-8"属性即可。

 

posted @ 2015-12-07 10:46  任国强  阅读(697)  评论(0编辑  收藏  举报