把<%
response.setContentType("text/html;   charset=gb2312");
request.setCharacterEncoding("gb2312");
%>和<meta http-equiv="Content-Type" content="text/html; charset=gb2312">去掉。

解决方案 »

  1.   

    好像链接中是不能出现中文的,你必须用javascript来编码这个链接?
      

  2.   

    对,我的文件当然使用gb2312编码保存的,不然换成表单提交的时候就不可能显示正常,对吧?
    另外,我也知道tomcat默认是不支持中文路径的,所以我特意设置过server.xml
    <Connector   className="org.apache.coyote.tomcat5.CoyoteConnector"
    port="8080"                               minProcessors="5"   maxProcessors="100"
                                  enableLookups="true"   redirectPort="8443"   acceptCount="100"
                                  debug="0"   connectionTimeout="20000"   
                                  disableUploadTimeout="true"   URIEncoding='GBK'/>
      

  3.   

    现在我的tomcat可以支持中文路径
      

  4.   

    要用URLEncoder.encode才行的。xxx.JSP?aa=<%=java.net.URLEncoder.encode(HighLighterStr, "UTF-8")%>如果是用tomcat的話。要設置一下tomcat的server.xml
    找到<Connector
    加上:
    <Connector URIEncoding="utf-8" useBodyEncodingForURI="true"我是用UTF-8編碼的。也建議樓主用utf-8編碼。
      

  5.   

    1\接收端
    <%String parameter=request.getParameter("parameter");
    %>
    2\传出端  var url="123.jsp?parameter="+getEncodeStr(parameter);
      

  6.   

    如果你使用new String(request.getParameter("keyword").getBytes("ISO8859_1"),"GBK");就不要改server.xml,在server.xml里添加  URIEncoding='GBK'就不用new String(request.getParameter("keyword").getBytes("ISO8859_1"),"GBK");
      

  7.   

    回wwangl:我曾经试过,如果光是文件里面有new String(request.getParameter("keyword").getBytes("ISO8859_1"),"GBK");那只能保证jsp文件相互访问传递参数的时候支持中文,但是不支持中文路径,显示一些%%%%之类的符号,改了server.xml后地址栏就能支持中文路径了
      

  8.   

    回magicshan:
    你能不能详细点介绍下?
    我用了你的方法,显示:The method getEncodeStr(String) is undefined for the type _123_jsp
      

  9.   

    那你的jsp里面直接使用request.getParameter("keyword")就可以了,不用再转一次了
      

  10.   

    回wwangl:那还是不行啊,不信你亲自试试看看
      

  11.   

    我是试过了的呀,看来是我没说明白。整理一下:如果你的server.xml中加了URIEncoding='GBK',那么你的jsp就直接使用request.getParameter("keyword")就是中文的,不用new String(request.getParameter("keyword").getBytes("ISO8859_1"),"GBK")。如果你要用new String(request.getParameter("keyword").getBytes("ISO8859_1"),"GBK"),你的server.xml里面就不要加URIEncoding='GBK'。如果还不行,那我就没辙了,我用的是新安装的tomcat5.0.28。要不你也换成这个
      

  12.   

    中文字符传递时先encode一下,取值时再decode
      

  13.   

    回wwangl:我明白你的意思,我以前确实是直接request.getParameter("keyword"),但是并不能显示中文,所以我才用request.getParameter("keyword").getBytes("ISO8859_1"),"GBK"),这样才能显示中文。
    在server.xml里面加上URIEncoding='GBK'只是解决了中文路径的问题,比如说以前地址栏显示:http://localhost/123/%r%e%t%y.jpg而现在可以支持http://localhost/123/你好.jpg
      

  14.   

    回wwangl:我用的是Tomcat 5.5最新版本,操作系统是xp+sp2,可能和这个关系不大,最郁闷的是把参数放在表单里面传送就不会乱码。