81,091
社区成员
发帖
与我相关
我的任务
分享
[大家好。]:[%E5%A4%A7%E5%AE%B6%E5%A5%BD%E3%80%82]:[\345\244\247\345\256\266\345\245\275\343\200\202]
[\345\244\247\345\256\266\345\245\275\343\200\202]:[%E5%A4%A7%E5%AE%B6%E5%A5%BD%E3%80%82]:[大家好。]
[百分号编码]:[%E7%99%BE%E5%88%86%E5%8F%B7%E7%BC%96%E7%A0%81]
补充说明:
这种编码方式称为百分号编码或者URL编码,当URL网址里面有中文(Unicode)的时候,就会转换为百分号开头的这种编码
在百度的首页里面输入【百分号编码】,按下【百度一下】,浏览器里的地址栏看起来是中文的【百分号编码】
但是拷贝到记事本等文本编辑器的时候,就会看到,其实是下面这样的内容,其中%开头的那些就是【百分号编码】
【http://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=%E7%99%BE%E5%88%86%E5%8F%B7%E7%BC%96%E7%A0%81&rsv_pq=d319f1ba00009a47&rsv_t=5358%2Bf%2BY%2ByKNfNWVvyns%2Bmi5W%2BY0shVovXiGb9GYzfwZhU3jy4R5H42ufmI&bs=http%3A%2F%2Fsearch.yahoo.co.jp%2Fsearch%3Fei%3DUTF-8%26fr%3Dcrmas%26p%3D%25E7%2599%25BE%25E5%2588%2586%25E5%258】
String str = "\\345\\244\\247\\345\\256\\266\\345\\245\\275\\343\\200\\202";
Pattern pattern = Pattern.compile("\\\\");
String [] strs = pattern.split(str);
StringBuffer sb = new StringBuffer();
for(String s : strs){
if(s != null && s.trim().length() > 0){
String st = Integer.toHexString(Integer.valueOf(s,8));
sb.append("%").append(st);
}
}
try {
System.out.println(URLDecoder.decode(sb.toString(), "utf-8"));
} catch (Exception e) {
e.printStackTrace();
}