Declare Integer InternetCanonicalizeUrl In WinInet.DLL ; String @ cUrlToDecode ; , String @ cResultsBuffer ; , Integer @ iBufferLength ; , Integer iFlags Declare Integer GetLastError In Win32Api *- flags for InternetCanonicalizeUrl() and InternetCombineUrl() from WinInet.H #define ICU_NO_ENCODE 0x20000000 && Don't convert unsafe characters to escape sequence. #define ICU_DECODE 0x10000000 && Convert %XX escape sequences to characters. #define ICU_NO_META 0x08000000 && Don't convert .. etc. meta path sequences. #define ICU_ENCODE_SPACES_ONLY 0x04000000 && Encode spaces only. #define ICU_BROWSER_MODE 0x02000000 && Special encode/decode rules for browser. cUrlToDecode = "This%20is%20a%20test" iBufferLength = Len( cUrlToDecode ) cResultsBuffer = Space( iBufferLength ) + Chr(0) cUrlToDecode = cUrlToDecode + Chr(0) iBufferLength = iBufferLength + 1 iResult = InternetCanonicalizeUrl( ; @cUrlToDecode ; , @cResultsBuffer ; , @iBufferLength ; , BitOR( ICU_DECODE , ICU_NO_ENCODE )) TRUE = -1 && 0 for FALSE. If iResult == TRUE Return Left( cResultsBuffer, iBufferLength ) Endif Return "ERROR: " + Transform( GetLastError())