想实现这样的效果路径http://www.google.cn/music/top100/url?q=http%3A%2F%2F怎么弄啊,原来的路径是http://localhost:8081/myPro/queryonlybystel.action?stelId=1&page=1,谢谢

解决方案 »

  1.   

    哈哈我前几天刚好 弄过这个问题。
    http://www.google.cn/music/top100/url?q=http%3A%2F%2F
    编码方式是utf-8的形式。
    而百度 后面的参数是 gb2312 的形式。
    这里的参数是这样的。
    %3A%2F%2F
    因为 有些中文 传不过去的。比如手机上就是。
    转换方法。就是把中文字符串 或者其他字符 通过下面的方法来转。/**
       * Utf8URL编码
       * @param s
       */
      public String Utf8URLencode(String text) {
        StringBuffer result = new StringBuffer();     for (int i = 0; i < text.length()/2; i++) {       char c = text.charAt(i);
          if (c >= 0 && c <= 255) {
            result.append(c);
          }else {         byte[] b = new byte[0];
            try {
              b =text.toString().getBytes("UTF-8");
            }catch (Exception ex) {
            }         for (int j = 0; j < b.length; j++) {
              int k = b[j];
              if (k < 0) k += 256;
              result.append("%" + Integer.toHexString(k).toUpperCase());
            }
        }
        }
    return result.toString();
      }
    //将传过来的参数 转化成以GB2312编码形式如"交警返回是%BD%BB%BE%AF"
    public String GBURLencode(String text) {
    StringBuffer result = new StringBuffer();        byte[] b = new byte[0];
            try {
            b = text.getBytes("GB2312");
            }
            catch (Exception ex) {
            }
            for (int j = 0; j < b.length; j++) {
            int k = b[j];
            if (k < 0) k += 256;
            result.append("%" + Integer.toHexString(k).toUpperCase());
             }        return result.toString();
    }用的时候就是这么用
    [code=Java]
    String chinese = "交警";
    System.out.println("http://translate.google.cn/translate_t?hl=zh-CN&ie=UTF-8&text="+Utf8URLencode(chinese)+"&sl=zh-CN&tl=en#");
    code]
    输出就是这个:
    http://translate.google.cn/translate_t?hl=zh-CN&ie=UTF-8&text=%E4%BA%A4%E8%AD%A6&sl=zh-CN&tl=en#
    交警 = %E4%BA%A4%E8%AD%A6
      

  2.   

    楼主 %3A%2F%2F 这个不是加密的 不要理解错咯
      

  3.   

    关于url的加密问题 在java 中有一个 java.net.URLEncoder类处理url的,一个静态的encoed(pram)
    的方法参数为url的参数url的参数加密技术针对 英文的参数
    还有一个Base64 的处理类针对 字符串加密请参考 api!
      

  4.   

    那怎么考虑INT类型的呢?
    比如我要从<foreach>循环中获取id的值,而加密过(暂时叫他加密)的字符串是String 类型的,2个类型冲突,怎么办
    动态的加密能做吗?
      

  5.   

    url转一下码。加密不需要。提交用 post方式提交。
      

  6.   

    我那个不是POST的方式,是GET方式的
    action?后面传值