2012-03-09 277 views
4

我正在使用http://jquery.malsup.com/form/,我正在使用GET发送电子邮件地址到网址。@转换为%40在GET

看起来电子邮件地址中的@正在转换为%40。

这是捕获数据的网站的问题吗?

+0

单击并查看网址:http://www.google.com/#bav=on.2,or.r_gc.r_pw.r_qf.,cf.osb&fp=8fc685d9ca728249&hl=zh-CN&q=%40 – 2012-03-09 09:11:33

+0

您是否确实尝试自己回答这个问题?也不,我不这么认为,只要你使用[urldecode()](http://de.php.net/manual/de/function.urldecode.php)。 – Harti 2012-03-09 09:12:16

+0

你试过了吗? – 2012-03-09 09:12:31

回答

14

%40@的URL编码版本。此转换只发生在URL中。服务器将仍然把它看作是@,并在必要时你甚至可以用JavaScript来对其进行解码:

decodeURIComponent('%40'); // '@' 
// or, to encode it back: 
encodeURIComponent('@'); // '%40' 

这里是一个将得到解析如你所期望的服务器端的URL的一个例子:

http://mathiasbynens.be/demo/get?x=%40 

如果visit the page,你会看到它打印@,不%40

这里是一个将得到解析如你所期望的客户端,通过使用decodeURIComponent一个URL的一个例子:

http://mothereff.in/byte-counter#%40 

如果visit the page,你会看到文本域的内容设置到@,而不是%40