2012-11-23 60 views
4

当我在CLI参数中使用问号字符(?)时,它不填充值(使用http://search.cpan.org/dist/CGI/lib/CGI.pm#DEBUGGING)。即使它逃脱了。PERL CGI CLI特殊字符问号

这不会在所有的填充 “参数”:

perl的httpPost.pl PARAM = “http://www.test.com/?user=test”

perl的httpPost.pl PARAM = “http://www.test.com/\?user=test”

这将返回字符,直到?

+1

你想通过你的脚本参数'param'包含一个URL用参数'user',还是想让脚本传递参数'user'并让它相信它是在URL http:// www.test.com /'下调用的?您是否尝试过参数值的正确URL编码(例如'http%3A%2F%2Fwww.test.com%2F%3Fuser%3Dtest')? – amon

回答

3

您必须对您的参数进行网址编码,以便URL中特殊的字符将转换为%XX字符串。那些字符串将在另一侧解码。

CPAN上有许多模块可以帮助您进行网址编码。这里有几个:

  1. URL::Encode
  2. URI::URL

,并在更广泛的意义:Search MetaCPAN for url_encode

+0

谢谢。这样可行! 理想情况下,所有输入应该被编码。 此网站提供了一个网页界面来编码URL字符串。 http://meyerweb.com/eric/tools/dencoder/ – revert