三种常用的js编码函数
- escape()
不能直接用于URL编码,它的真正作用是返回一个字符的Unicode编码值。escape()不对"+"编码 主要用于汉字编码,现在已经不提倡使用。 - encodeURI()
是Javascript中真正用来对URL编码的函数。 编码整个url地址,但对特殊含义的符号"; / ? : @ & = + $ , #",也不进行编码。需要注意的是,它不对单引号’编码。对应的解码函数是:decodeURI()。 - encodeURIComponent()
能编码"; / ? : @ & = + $ , #"这些特殊字符。对应的解码函数是decodeURIComponent()。
适用场合:encodeURI被用作对一个完整的URI进行编码;encodeURIComponent被用作对URI的一个组件进行编码。
问题描述:
使用百度地图的URL API显示一个地点标注的时候,IE下中文显示乱码,谷歌显示正常。
解决方法:(使用encodeURI())
<a id="baidu_url" <a="" href="javascript:void(0)" onclick="bdmap()">
<script type="text/javascript">
function bdmap(){
var url = "http://api.map.baidu.com/marker?location=0,0&title=地点标题&content=地点名称&output=html&src=webapp.baidu.openAPIdemo";
window.open(encodeURI(url));}
</script>