如果 url 中的单引号 [重复],则 Html 按钮不起作用
Posted
技术标签:
【中文标题】如果 url 中的单引号 [重复],则 Html 按钮不起作用【英文标题】:Html button is not working if single quotes in url [duplicate] 【发布时间】:2021-08-19 09:36:52 【问题描述】:我正在使用 perl 和 CGI,我在其中积累数据并将其放置在 url 中。如下所示
http://acv.farm.com/devpm/tiber/tiyu.cgi?sid=233®ion=Asia&description=for'bf' 和 'cx'&psite=bothwork 中的数据。
在此网址的描述中,如果出现单引号,则我的按钮不起作用。如果我们手动删除单个代码,那么按钮就会起作用。
我将这个网址放在一个变量my $durl=http://acv.farm.com/devpm/tiber/tiyu.cgi?sid=$id&region=$reg&description=$desc&psite=$pwork
我也用$durl =~ s/\+/\%2B/g
格式化这个
然后我像这样<a href=\"$durl\">
在href中传递这个变量
我正在寻找处理单引号和双引号的逻辑,如果它出现在 url 中。
【问题讨论】:
我得到了我正在使用 %27 对引号进行编码的解决方案。谢谢 不不不,这不是我建议的解决方案。使用URI::Escape
或URI
,而不是手动转义一些 个字符(如我链接的问题的答案中所建议的那样)。
【参考方案1】:
use URI qw( );
my $durl = URI->new('http://acv.farm.com/devpm/tiber/tiyu.cgi');
$durl->query_form(
sid => $id,
region => $reg,
description => $desc,
psite => $pwork,
);
# Force stringification. Not needed if you're treating it as a string.
$durl = $durl->as_string;
-or-
$durl = "$durl";
【讨论】:
以上是关于如果 url 中的单引号 [重复],则 Html 按钮不起作用的主要内容,如果未能解决你的问题,请参考以下文章