Php %单击40将变为%2540

Php %单击40将变为%2540,php,yii,Php,Yii,当点击包含@符号的链接时,url会给我%40,这就是我想要的。但一旦我单击它,一秒钟后,它会在我单击后立即更改为%2540。单击位于电子邮件中,然后指向站点,其中%40更改为%2540。我怎样才能让它停止变化 它现在得到的参数如下: $email=Yii::app()->request->getParam('email'); 不确定我应该提供什么其他信息。问题是您的%40再次进行了url编码(因为%编码为%25),这给您提供了%2540您的问题中没有足够的细节来明确说明原因,但我至

当点击包含@符号的链接时,url会给我%40,这就是我想要的。但一旦我单击它,一秒钟后,它会在我单击后立即更改为%2540。单击位于电子邮件中,然后指向站点,其中%40更改为%2540。我怎样才能让它停止变化

它现在得到的参数如下:

$email=Yii::app()->request->getParam('email');

不确定我应该提供什么其他信息。

问题是您的
%40
再次进行了url编码(因为
%
编码为
%25
),这给您提供了
%2540
您的问题中没有足够的细节来明确说明原因,但我至少可以告诉您这是怎么回事,这会给你一些线索

“@”有一个十六进制40的ASCII码,因此当它被转义时(即变成没有任何特殊字符的东西),它就变成了“%40”。但是“%”有一个十六进制25的ASCII码。如果转义“%”,则得到“%25”


您的文本将被转义两次:首先从“@”转义到“%40”,然后再从“%40”转义到“%2540”。

当您试图在查询字符串上调用urlencode时,如果您已经这样做了,就会发生这种情况。因此,第一次呼叫将为您提供%40而不是“@”。第二次呼叫时,您得到的是%25,而不是%