请google tomcat 中文问题

解决方案 »

  1.   

    ISO 是一种国际认证的编码方式 比如 ("iso-8859-1")
      

  2.   

    jsp页面中加入
    <%@ page language="java" contentType="text/html; charset=GB2312"  pageEncoding="GB2312"%>
      

  3.   

    to:medusa_apple(杜杜) 我加上你说的那段代码后默认编码虽然变回了简体中文,但是页面上还是乱码。
      

  4.   

    <%@ page language="java" contentType="text/html; charset=GBK"  pageEncoding="GBK"%>
      

  5.   

    to:geleisi(努力..) 页面是乱码有很多种原因的,因为tomcat内部默认的编码是“iso-8859-1”,而可能我们在jsp页面或者servlet中需要显示的字符串是“GBK”或者是“GB2312”编码的。因此有可能一部分是乱码而另一部分却又是正确的。而如果换一种编码,比如utf-8的,可能有些字符串能够在正常显示,而另一部分(比如说从页面提交的数据处理后在返回显示)就又是乱码了。
    你可以使用过滤器来解决这个问题。
    在tomcat的安装路径/webapps\servlets-examples\WEB-INF\classes\filters\,这个目录下有一个SetCharacterEncodingFilter.java文件,把它引入你的项目,然后修改Web.xml文件,添加下面的内容:
     <filter>
            <filter-name>Set Character Encoding</filter-name>
            <filter-class>filters.SetCharacterEncodingFilter</filter-class>
            <init-param>
                <param-name>encoding</param-name>
                <param-value>GB2312</param-value>
            </init-param>
        </filter>
        <filter-mapping>
            <filter-name>Set Character Encoding</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    注意上面的代码有一个GB2312的地方,这个就是设置编码位置的地方,你可以使用其他的编码比如utf-8或者gbk,不过注意的是,这个地方的编码要和jsp和servlet中的设置一样。否则还是乱码。另外SetCharacterEncodingFilter.java默认是在filters包中的,如果你改变它包的属性,在上面的配置文件中也要改filters.SetCharacterEncodingFilter。这种方法虽然繁琐一点,不过很有效。比起在jsp中对单个字符串调用编码转化的方法要有效的多。