Spaces in URLEncode?

Dar Scott dsc at swcp.com
Fri Jul 19 14:22:01 EDT 2002


On Thursday, July 18, 2002, at 10:30 PM, David Egbert wrote:

> I always thought that spaces were converted to "%20" in a URL 
> string and the
> + sign was used for JavaScript.  Am I off base here?  Is there another
> function that will convert the spaces to "%20"?

I was surprised when I saw this, too.

Use "replace" to do that.  See below.

I believe all the URLEncode does is replace the space with plus (+) 
and replace those not ASCII letters or digits with the %nn 
encoding.  Use it as a tool to help in your coding of your URL 
functions.

The query string is separated from the path of the URL by a 
question mark (?).  In the query string each space is converted to 
a plus.

The URLEncode might be sufficient for the query part (except for 
FORM pairs).

For the components of the path part, this should be close (off the 
top of my head)...

function encodeURLpathComponent theURL
    put URLencode(theURL) into theEncoded
    replace "+" with "%20" in theEncoded
    return theEncoded
end encodeURLpathComponent

However, if the URL is hard coded, you can convert by hand and do 
not need that function.  If you are making queries you can use 
URLencode for for the query part.  If you are using FORM queries, 
use URL encode on each name and value before building your query.  
Do not apply it afterward.  I think ISINDEX encoding is OK with 
simply URLencode (I'm not sure about ampersand and semicolon).  For 
ISMAP, you may need to avoid encoding the comma.

So...  In general a space might be encoded as a + or %20.  No doubt 
thunk up to make your life harder.

Dar Scott









More information about the use-livecode mailing list