本帖最后由 ubdc001 于 2011-12-09 09:45:02 编辑

解决方案 »

  1.   

    URLConnection的传输目前只解决了iso8859-1格式的。就像我们写jsp页面的默认格式
      

  2.   

    个人感觉实际上在传输过程中, 传输内容在传输前是gbk或者utf8,传输过程中是iso8859-1,到达目的地后再解码成gbk或者utf8
      

  3.   

    在传输前要显式的进行编码,接收参数的时候可以直接用指定的字符集解码,否则传输过程中默认的编码方式为iso8859-1。
    即使Jsp页面用charset设置过GBK或者UTF-8,它们对url的传输不管用
      

  4.   

    用escape函数试试看,我一直用这个传递中文参数,我是UTF-8编码,GB2312也可以,其他编码应该也可以。
    jsp中:<%!
    /** 相当于 javascript 中 escape 的函数 */
    public static String escape(String src) {
    int i;
    char j;
    StringBuffer tmp = new StringBuffer();
    tmp.ensureCapacity(src.length() * 6);
    for (i = 0; i < src.length(); i++) {
    j = src.charAt(i);
    if (Character.isDigit(j) || Character.isLowerCase(j)
    || Character.isUpperCase(j))
    tmp.append(j);
    else if (j < 256) {
    tmp.append("%");
    if (j < 16)
    tmp.append("0");
    tmp.append(Integer.toString(j, 16).toUpperCase());
    } else {
    tmp.append("%u");
    tmp.append(Integer.toString(j, 16).toUpperCase());
    }
    }
    return tmp.toString();
    }
    %>
    <a href="page.jsp?name=<%=escape("我人有的和")%>">我人有的和</a>
    -------------------------------------------------------------------------
    javascript中:<a href="javascript:void(0)" onClick="gopage('我人有的和');">我人有的和</a>
    <script>
    function gopage(txt){
    window.location="page.jsp?name="+escape(txt);
    }
    </script>
      

  5.   

    不用继续看了,直接都改为UTF-8,能解决你90%以上的乱码问题
      

  6.   

    post方式,写一个过滤器,设置utf-8编码,get方式,修改tomcat配置文件,设置编码格式
      

  7.   

    忘记会来看了下。我最后测了下。使用is8859-1能转成功。确定了使用URLConnection,不管你设置了GET还是POST,最后传输的时候,都是用的is8859-1传输的。
      

  8.   

    加上这个试试:request.setCharacterEncoding("GBK");