यहाँ मेरी समाधान है:
cat = [email protected]@(ToString/@{##})&; (* Like sprintf/strout in C/C++. *)
re = RegularExpression;
hex = IntegerString[#,16]&; (* integer to hex, represented as a string *)
up = ToUpperCase;
asc = ToCharacterCode[#][[1]]&; (* character to ascii code *)
subst = StringReplace;
urlesc[s_String] := subst[s, {" "->"+", [email protected]"[^\w\_\:\.]":>"%"<>[email protected]@[email protected]"$0"}]
urlesc[x_] := [email protected]@x
unesc[s_String] := subst[s, [email protected]"\\%(..)":>[email protected]["$1",16]]
एक बोनस के रूप में, यहाँ GET पैरामीटर में a=2&b=3
तरह {a->2, b->3}
तरह नियमों की एक सूची एन्कोड करने के लिए उचित URL एन्कोडिंग के साथ एक समारोह है:
encode[c_] := cat @@ Riffle[cat[#1, "=", urlesc[#2]]& @@@ c, "&"]
पसंदीदा। यह कुछ ऐसा है जो मैं हर छह महीने में एक बार करना चाहता हूं, और मैं हमेशा काम पूरा करने के लिए कुछ फिर से रोलिंग समाप्त करता हूं। – Pillsy