67,549
社区成员




public static void main(String[] args) throws Exception {
String url_0 = "%259d%2571%2566%259e%2554%2576%25a0%2560%2574%259e%2543%2561";
//1 去掉 25
String url_1 = "%9d%71%66%9e%54%76%a0%60%74%9e%43%61";
String[] url_2 = url_1.split("%");
StringBuilder url_3 = new StringBuilder();
for(int i=1;i<url_2.length;i++){
String str = url_2[i];
String res = Integer.valueOf(str,16).toString();
int intRes = Integer.parseInt(res);
intRes = intRes+256;
intRes = intRes-201;
String str_16 = Integer.toHexString(intRes+16);注意这里 比 网上的 多加 了一个 16
url_3.append("%"+str_16);
}
System.out.println(url_3.toString());
String strRes = URLDecoder.decode(url_3.toString(),"UTF-8");
System.out.println(strRes);
}
结果 :
%e4%b8%ad%e5%9b%bd%e7%a7%bb%e5%8a%a8
中国移动
简单实现了一下,原理大概就是这样,按照帖子,+256 然后 -201 最后转 得出的结果刚好少了一个 16。加上之后能正确解析了。