如何在URL中转义#符号?

时间:2013-11-05 11:06:48

标签: java javascript jquery jsp servlets

我有#符号在我的网址中作为参数传递。但它在#之后丢弃了所有参数值。请建议我解决方案。以下是我的网址

GetConnectiont?   
  customerID=customer1&activenode=Sv50&parent=server&frame=imHealthCheckFrame&
connectedFrom=healthCheck&username=root&password=anil#1234&fromAskUsrPwd=askPassword

提前致谢

3 个答案:

答案 0 :(得分:5)

根据这里找到的答案:How to escape Hash character in URL

#替换为%23

您可以在此处找到所有保留字符的列表:Percent-encoding


关于JavaScript编码的一句话

encodeURI(str)

  

“假设URI是一个完整的URI,因此不会对URI中具有特殊含义的保留字符进行编码。encodeURI使用适当的UTF-8转义序列替换除以下字符之外的所有字符:”{{ 3}}

[1]

  

“除以下内容外,所有字符都会转义:字母,十进制数字, - _。!〜*'()”encodeURIComponent(str)

在您的情况下,您只能在查询字符串上使用encodeURIComponent()来转义任何和所有保留的字符。

!  %21 
#  %23 
$  %24 
&  %26 
'  %27 
(  %28 
)  %29 
*  %2A 
+  %2B 
,  %2C 
/  %2F 
:  %3A 
;  %3B 
=  %3D 
?  %3F 
@  %40 
[  %5B 
]  %5D

答案 1 :(得分:1)

您需要对值进行编码(如果您使用字符串连接来创建URL)。在javascript中,您可以使用encodeURIComponent()之类的

encodeURIComponent('anil#1234');//or your variable here

答案 2 :(得分:1)

您需要对可能包含#的参数进行编码,然后在服务器端代码中解码该参数。

您可以使用互联网中的许多资源对字符串进行网址编码,例如this。在您的情况下,anil#1234变为anil%231234