12.6 如何將傳遞資料解碼?

某些字元對伺服器而言具有特殊意義,若欲傳遞給 CGI 程式處理的資料中含有這些字元,那麼瀏覽器會對這些字元予以編碼,CGI 程式在取得這些經過編碼的資料後,必須進行解碼的動作,才能將傳遞的資料予以還原。

範本:

解碼的方法:

if ($ENV{'REQUEST_METHOD'} eq 'POST') {
    read(STDIN, $temp, $ENV{'CONTENT_LENGTH'});
} else {
    $temp=$ENV{'QUERY_STRING'};
}

@key_value=split(/&/,$temp);

foreach $item(@key_value) {
    ($key,$value)=split (/=/,$item,2);
    $value=~tr/+/ /;
    $value=~ s/%(..)/pack("c",hex($1))/ge;
    $data{$key}=$value;
}

此時 %data 這個雜湊陣列即取得了解碼後的資料。