当点击包含@符号的链接时,网址会给我%40,这就是我想要的。但是一旦我点击它,一秒后它会在我点击后立即更改为%2540。点击是在电子邮件中,然后定向到网站,其中%40更改为%2540。我怎样才能让它停止变化?
它现在正在获得这样的参数:
$email=Yii::app()->request->getParam('email');
不确定我应该提供哪些其他信息。
答案 0 :(得分:14)
问题是,您的%40
再次进行了网址编码(因为%
编码为%25
),这会为您提供%2540
。
答案 1 :(得分:1)
在你的问题中没有足够的细节来确定原因,但我至少可以告诉你它是什么,这应该给你一些线索。
A" @"有一个十六进制40的ASCII码,所以当它被转义(即变成没有任何特殊字符的东西)时,它变成"%40"。但是"%"具有十六进制25的ASCII码。如果你逃避"%",你得到"%25"。
您的文字被转发两次:首先来自" @"至"%40",然后再次从"%40"到"%2540"。
答案 2 :(得分:1)
当您尝试在查询字符串上调用urlencode时,就会发生这种情况。所以,第一个电话会给你%40而不是“@”。而第二个电话会给你%25而不是%