如果 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&region=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::EscapeURI,而不是手动转义一些 个字符(如我链接的问题的答案中所建议的那样)。 【参考方案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 按钮不起作用的主要内容,如果未能解决你的问题,请参考以下文章

jQuery中的单引号或双引号[重复]

如何处理 Postgresql 查询中的单引号 [重复]

Ruby oneliner 的正则表达式块中的单引号问题[重复]

shell中的单引号和双引号的区别

Linux 命令中的单引号,不加任何参数以及双引号的作用

sql语句的单双引号问题