String str = new String(s.getBytes("ISO-8859-1"), "GBK");
s 是你取得的字符串
str是转换后的字符串

解决方案 »

  1.   

    如果表单是通过post提交的,用request.setCharacterEncoding("GBK");
      

  2.   

    1.POST中文问题终极解决方案:
    Tomcat示例中有一个类: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>GBK</param-value>
            </init-param>
        </filter>
         <filter-mapping>
          <filter-name>Set Character Encoding</filter-name>
          <url-pattern>/*</url-pattern>
         </filter-mapping>
    字符集可以根据需要自行改变。
    好处:不用时刻考虑字符串转换问题,一切过滤器搞定。
    2.GET中文问题解决方案(仅适用于Tomcat5.0/5.5)
    在tomcat配置文件server.xml的Connector中加入属性:URIEncoding="GBK"
    示例如下:
    port="80" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100"
       connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK" />