URL Encode ve VBScriptu (ASP)

Občas se hodí použít funkce, které jsou lehce dosažitelné v JavaScriptu a těžko (nebo vůbec) dosažitelné v MS knihovnách. Potřeboval jsem v jednoduchém VB scriptu volat HTTP POST pomocí MSXML2.ServerXMLHTTP a ouha, narazil jsem na problém s URL enkódováním dat! XMLHTTP nic takového neumí a psát si vlastní funkci je hloupost – zvlášť když v ASP existuje Server.URLEncode! Řešením je použití objektu MSScriptControl.ScriptControl, který zpřístupňuje funkce JavaScriptu. Funkční příklad “mapování” JS funkcí do VB Scriptu je zde:


Dim JSEngine
Set JSEngine = CreateObject("MSScriptControl.ScriptControl")
JSEngine.Language = "JScript"

Function UrlEncode(s)
UrlEncode = JSEngine.CodeObject.encodeURIComponent(s)
UrlEncode = Replace(UrlEncode, "'", "%27")
UrlEncode = Replace(UrlEncode, """", "%22")
End Function

Function UrlDecode(s)
UrlDecode = Replace(s, "+", " ")
UrlDecode = JSEngine.CodeObject.decodeURIComponent(UrlDecode)
End Function

Reference: http://stackoverflow.com/questions/17880395/decoding-url-encoded-utf-8-strings-in-vbscript

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

*