- 论坛徽章:
- 1
|
apile帮我看看查一下这个编码的来源
sub SplitParam {
if ($ENV{'REQUEST_METHOD'} eq 'POST')
{
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}
else
{
$buffer=$ENV{'QUERY_STRING'};
}
@pairs = split(/&/, $buffer);
foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/~!/ ~!/g;
$FORM{$name} =$value;
}
}
===
GET 最長不能超過256個字元...如果超過會被truncate掉...
抄一段書上的東西給你看看..
利用GET方法傳遞資料時,所輸入的資料會與環境變數QUERY_STRING連結,
但是此環境變數有長度的限制,因此無法傳送大量的資料,在這情形下,可使用
POST方法。POST方法所輸入的資料為標準輸入,資料長度則是設定於環境變數
CONTENT_LENGTH。在<FORM>; tag中省略METHOD時,電腦默認使用GET
。
至於編碼,好像是跟HTML有關系...因為我只是要抓取CGI變數的資料,但卻
從沒有想過他怎麼編碼的..^^
上面這個subroutine..與CGI.pm用的是相同的..你可以看看...
稍微修改可以接受 GET /cgi-bin/aa.pl?AA=XX&AA=YY&AA=CC
這種格式...空白好像會變成+符號...其他符號不是很清楚..其他同上面.... |
|