String strURL = "";
try {
strURL = URLEncoder.encode(url, "utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
System.out.println("编码失败~");
e.printStackTrace();
}
strURL = strURL.replaceAll("%3A", ":").replaceAll("%2F", "/") //过滤URL 包含中文
.replaceAll("%3F", "?").replaceAll("%3D", "=").replaceAll(
"%26", "&");
转换的原理。
: -> 3A -> 16*3+10 -> 58 -> chr(58) = ":"
/ -> 2F -> 16*2+15 -> 47 -> chr(47) = "/"
-----------------------------------------------------
16*高位+低位
3A(16进制)→58(10进制)→字符(58)→显示“:”
编码,不是C++,这个是将UTF8转换成ANSI编码。
转载于:https://my.oschina.net/u/1781028/blog/300032