可以用java.net.URLEncoder来转换,一般使用UTF-8编码,不过有些网站不是的,比如百度的就不是。你最好先测试一下转换后的编码是不是你需要的那种。

解决方案 »

  1.   

    用这个可以
    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(); 
    }
      

  2.   

    我可以在浏览器里发送带有中文的连接,但是如果在servlet中使用response。sendRedirect(url)方法,url中带有中文,传到服务器端就会出现乱码
      

  3.   

    1、可以用java.net.URLEncoder来转换,裡面有個方法是encode(String)可以處理中文參數問題。
      

  4.   

    恩~~~ stonecsdn(东东)的问题我也碰到过~~
    如果用tomcat5.0的话不会出现这个问题
    不知道tomcat4.0怎么解决这个问题
    还有,我发现tomcat5.0有response.setCharacterEncoding()方法而4.0没有
      

  5.   

    我用的服务器是weblogic。我的页面utf-8
    IE中直接用中文在URL中传送没有问题的,不过在服务器端requestURI出现%BB%D8%B8%B4
    但我一样使用
      

  6.   

    但是如果在servlet中用response.sendRedirect(url),url中含有中文,在服务器端就会出现乱码,而不是%BB%D8%B8%B4
      

  7.   

    谢谢ZHGUY(ZGY),用了你的方法解决问题,一会给分