close

HTML的表格資料在送出時會將data以Url encode的方式送出
和RFC1738的編碼方式不同
譬如空格會以"+"號代替,將所有非字母字元的字串除了-_.之外,
以百分比符號(%)後跟隨數字的方式表示
像如果寫socket要處理ASP.net的像__VIEWSTATE欄位
就要先urlencode該欄位值再送出
以下提供perl版的urlencode、urldecode
-----------------------------------------------------------
#!/usr/bin/perl -s

# urlencode - URL encode or decode the given strings
# Steve Kinzler, kinzler@cs.indiana.edu, Jan 03
# http://www.cs.indiana.edu/~kinzler/home.html#web

$usage = "$0 [ -d ] [ arg ... ]
-d decode instead of encode
If no arguments are given, standard input is used.\n";
die $usage if $h;

$in = (@ARGV) ? join(' ', @ARGV) : join('', <>);

print(($d) ? &urldecode($in) : &urlencode($in), "\n");

###############################################################################

sub urlencode {
local($_, $mlm) = (join('', @_), $*);
$* = 1;
s/[^ \w!\$'()*,\-.]/sprintf('%%%02x', ord $&)/ge;
s/ /+/g;
$* = $mlm;
return $_;
}

sub urldecode {
local($_, $mlm) = (join('', @_), $*);
$* = 1;
s/\+/ /g;
s/%([\da-f]{2})/pack('C', hex $1)/gie;
$* = $mlm;
return $_;
}
-----------------------------------------------------------
Ref:

http://www.chedong.com/blog/archives/000224.html
http://rami.info/2005/11/19/urlencode-and-urldecode-for-perl/
http://www.cs.indiana.edu/~kinzler/home/binp/urlencode

線上URL Encode:

http://www.albionresearch.com/misc/urlencode.php
http://member.ettoday.com/book/function.php-urlencode.htm
http://phorum.study-area.org/viewtopic.php?p=237959

全站熱搜
創作者介紹
創作者 fvalinux 的頭像
fvalinux

Elegance

fvalinux 發表在 痞客邦 留言(1) 人氣()