首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

解决url编码有关问题

2012-09-02 
解决url编码问题url中包含中文一般需要编码,而在编解码中由于浏览器或者个人系统编码的原因,可能会有不同

解决url编码问题

url中包含中文一般需要编码,而在编解码中由于浏览器或者个人系统编码的原因,可能会有不同的编码访问形式,因此在解码的时候需要注意,不然很容易出现乱码。在最近工作中遇到了这个问题,虽然没有完全解决乱码,但依据次方式能够解决大部分此类问题。

例: url="%25b1%25a6%25c2%25ed1%25cf%25b5%25b3%25a8%25c5%25f1" 我们在解码时用到

String b1 = URLDecoder.decode(url);String encode = FileUtil.getEncoding(b1); //获得b1的编码方式String b2= URLDecoder.decode(b1, encode); //再用b1的编码方式对b1再进行解码得到b2 String b2Encode = FileUtil.getEncoding(b2);//获得b2的编码方式if (!encode.equals(b2Encode)) {b2 = URLDecoder.decode(b1, b2Encode);}//如果第二次编码方式和第一不同,那么再对b1按b2编码再解码。这样就保证了在不知道该字符串编码方式的时候进行解码,那么getEncoding()是怎么做到的呢?
?再看看下面getEncoding方法的具体实现public static String getEncoding(String str) {
        String encode = "GB2312";          try {              if (str.equals(new String(str.getBytes(encode), encode))) {                  String s = encode;                  return s;              }          } catch (Exception exception) {          }          encode = "ISO-8859-1";          try {              if (str.equals(new String(str.getBytes(encode), encode))) {                  String s1 = encode;                  return s1;              }          } catch (Exception exception1) {          }          encode = "UTF-8";          try {              if (str.equals(new String(str.getBytes(encode), encode))) {                  String s2 = encode;                  return s2;              }          } catch (Exception exception2) {          }          encode = "GBK";          try {              if (str.equals(new String(str.getBytes(encode), encode))) {                  String s3 = encode;                  return s3;              }          } catch (Exception exception3) {          }          return "";      }  

?其实就是按编码方式一个个的新建字符串,然后和新建串以前做比较,如果相同则认为是该编码方式。

?

标致308配置2

比亚迪f3dm2

猎豹奇兵报价2

现代飞思veloster2

甲壳虫敞篷汽车报价2

花冠 2

英菲尼迪g2

览胜2

起亚凯尊2

长安汽车悦翔2

陆虎揽胜2

雪佛兰科迈罗报价2

雪弗兰景程2

雪铁龙c62

风行景逸suv怎么样2

马自达2劲翔2

????h??2

11款卡罗拉1

12款新宝来报价1

?

但是现在问题是中文中还是有极少数乱码,目前还在需求更好的解决办法。。

热点排行