gpt4 book ai didi

perl - 使用 Perl,我如何在网络上解码或创建那些 %-encodings?

转载 作者:行者123 更新时间:2023-12-03 23:23:52 25 4
gpt4 key购买 nike

我需要在我的 Perl 脚本中处理 URI(即百分比)编码和解码。我怎么做?

这是来自 official perlfaq 的问题.我们是 importing the perlfaq to Stack Overflow .

最佳答案

这是official FAQ answer减去后续编辑。
那些%编码处理 URI 中的保留字符,如 RFC 2396, Section 2 中所述.此编码将保留字符替换为 US-ASCII 表中字符编号的十六进制表示。例如,冒号 : , 变为 %3A .
在 CGI 脚本中,如果您使用 CGI.pm,则不必担心解码 URI。 .您不必自己处理 URI,无论是在输入还是输出的过程中。
如果您必须自己对字符串进行编码,请记住,您永远不应该尝试对已经组成的 URI 进行编码。您需要单独转义组件,然后将它们放在一起。要对字符串进行编码,可以使用 URI::Escape模块。 uri_escape函数返回转义字符串:

my $original = "Colon : Hash # Percent %";

my $escaped = uri_escape( $original );

print "$escaped\n"; # 'Colon%20%3A%20Hash%20%23%20Percent%20%25'
要解码字符串,请使用 uri_unescape 函数:
my $unescaped = uri_unescape( $escaped );

print $unescaped; # back to original
如果你想自己做,你只需要用它们的编码替换保留的字符。全局替换是一种方法:
# encode
$string =~ s/([^^A-Za-z0-9\-_.!~*'()])/ sprintf "%%%0x", ord $1 /eg;

#decode
$string =~ s/%([A-Fa-f\d]{2})/chr hex $1/eg;

关于perl - 使用 Perl,我如何在网络上解码或创建那些 %-encodings?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4510550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com