问题:javascript如何转换url中的特殊字符?
解决:解决encodeURI或encodeURIComponent
方法:
var _k = encodeURI(k);
或者
var _k = encodeURIComponent(k);
拓展:escape、encodeURI和encodeURIComponent的区别
- escape
采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。
但此方法不会编码这些字符 : @ * / + - encodeURI
把URI字符串采用UTF-8编码格式转化成escape格式的字符串。
但是这些字符不会被编码 :! @ # $& * ( ) = : / ; ? + ' - encodeURIComponent
把URI字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,这个方法将对更多的字符进行编码,比如 / 等字符。但这几个字符不会被编码 :! * ( ) '
所以如果搜索的内容中有#号的,可以先对搜索内容进行编码,再连接成url。
参考:ttps://www.cnblogs.com/seasons1987/p/3357775.html