Linux下不是用GB2312  GBK 而是用UTF8

解决方案 »

  1.   

    楼主你试试这个方法,
    <1>把%TOMCAT安装目录%/ webapps\servlets-examples\WEB-INF\classes\filters\SetCharacterEncodingFilter.class文件拷到你的webapp目录/filters下,如果没有filters目录,就创建一个.
    <2>在你的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>
    <3>打开tomcat的server.xml文件,找到区块,加入如下一行:
    URIEncoding=”GBK”
    完整的应如下:
    <Connector port="80"  maxThreads="150" minSpareThreads="25" maxSpareThreads="75"               enableLookups="false" redirectPort="8443" acceptCount="100"               debug="0" connectionTimeout="20000"                disableUploadTimeout="true"                URIEncoding="GBK"/>
    <4>重启tomcat
    另:这并非我原创,摘自J道网站,我非常感谢这篇文章解决了我的中文传输问题,,希望楼主也能受益
      

  2.   

    楼上的方法固然很好,但我没法更改linux中Tomcat的配置文件啊,我是租用的虚拟主机。
    有没有其他方法呢?很多方法都尝试过了,最终传过来的仍然是问号~~~
      

  3.   

    没有用过这个组件,我一般用struts里面的上传,帮你顶好了。
      

  4.   

    你把接收的值转成utf8的试试,
    试试这个:
    /**
         * 将文件名中的汉字转为UTF8编码的串,以便下载时能正确显示另存的文件名.
         * 纵横软件制作中心雨亦奇2003.08.01
         * @param s 原文件名
         * @return 重新编码后的文件名
         */
        public static String toUtf8String(String s) {
    StringBuffer sb = new StringBuffer();
    for (int i=0;i<s.length();i++) {
        char c = s.charAt(i);
        if (c >= 0 && c <= 255) {
    sb.append(c);
        } else {
    byte[] b;
    try {
        b = Character.toString(c).getBytes("utf-8");
    } catch (Exception ex) {
        System.out.println(ex);
        b = new byte[0];
    }
    for (int j = 0; j < b.length; j++) {
        int k = b[j];
        if (k < 0) k += 256;
        sb.append("%" + Integer.toHexString(k).
        toUpperCase());
    }
        }
    }
    return sb.toString();
        }
      

  5.   

    真是晕死了
    用遍了方法
    用户名1:<%=myRequest.getParameter("masterid")%><br>
    用户名2:<%=new String(myRequest.getParameter("masterid").getBytes("UTF-8"),"GBK")%><br>
    用户名3:<%=new String(myRequest.getParameter("masterid").getBytes("ISO8859-1"),"GBK")%><br>
    用户名4:<%=StringParse.ISO8859ToGBK(myRequest.getParameter("masterid"))%><br>(StringParse.ISO8859ToGBK是在StringParse类里边的一个转换字符编码的函数)
    还是不行啊,4个全部显示的乱码!!!
    另外还加了
    <%@ page contentType="text/html;charset=GBK"%>
    <%request.setCharacterEncoding("GBK");%>等等所有的能转化成中文的方法几乎尝试遍了,没有一个能成功的!!!怎么搞得啊,为什么Linux那么不给我面子呢????!!!!