字符串“http%3A%2F%2F”转换成http://详解

我截获下来一个URL的字符串格式是“http%3A%2F%2F”,但是实际应该是http://

而“%2F”对应的就是 /

如果仅仅是想把字符串http%3A%2F%2F转换成http://的话,用strstr()等字符串系列函数应该可以解决吧

对于“http%3A%2F%2Fwww.baidu.com%2Fasd%3Fa%3D123”这种特殊字符被转义成16进制的字符串, 虽然知道“%3A”表示冒号(百分号“%”是转义符, 相当于正则当中的反斜杠”/”)

但是很少人会采用这种匹配字符串的方法来强行转义,因为这种匹配不仅不准确, 而且效率很低

而JS当中早就有了这种方法, encodeURIComponent和decodeURIComponent 容易理解, 前者是转义字符串, 后者是解析字符串

所以当遇到上面的字符串时, 那就可以用 decodeURIComponent解析, 而解析结果也会变成我们想要的字符串“http://www.baidu.com/asd?a=123”

而decodeURI和encodeURI, 跟前面的类似, 只不过不会转义特殊字符

例如:
http%3A%2F%2Fimg61.hbzhan.com%2F2%2F20130524%2F635049815930316074649.jpg

解码后就是:
http://img61.hbzhan.com/2/20130524/635049815930316074649.jpg

站长工具:UrlEncode编码/解码
http://tool.chinaz.com/tools/urlencode.aspx
http://www.jsons.cn/urlencode/

Related Posts