字符串“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
轉載自:http://429006.com/article/technology/4342.htm