Skip to content
lsl.devlsl.devLSL Dev

llEscapeURL

function
Function syntax
string llEscapeURL(
  1. string url// Unescaped URL string to escape.
);
Returns
string
Energy
10

To clarify, numbers and ASCII7 alphabetical characters are NOT escaped. If a character requires more then one byte in UTF-8 byte form then it returns multiple "%xx" sequences chained together.

Returns a string that is the escaped/encoded version of url, replacing spaces with "%20" etc. The function will escape any character not in [a-zA-Z0-9] to "%xx" where "xx" is the hexadecimal value of the character in UTF-8 byte form.

How to use
string result = llEscapeURL("");

The function is not appropriate for escaping a url all at once, because the ":" after the protocol, and all of the "/" characters delimiting the various parts, will be escaped. Instead, build the url in parts; escaping parts of the path and query string arguments as needed.

Sample URL: https://sim3015.aditi.lindenlab.com:12043/cap/a7717681-2c04-e4ac-35e3-1f01c9861322/foo/bar?arg=gra

URL partexample
base URLhttps://sim3015.aditi.lindenlab.com:12043/cap/a7717681-2c04-e4ac-35e3-1f01c9861322
trailing path/foo/bar
query string past the first ”?” in the URLarg=gra
Example 1
7 collapsed lines
string str = "http://wiki.secondlife.com/wiki/LSL Portal";
default
{
state_entry()
{
llOwnerSay("Plain string:\n\t" + str);
// output: "http://wiki.secondlife.com/wiki/LSL Portal"
llOwnerSay("Escaped string:\n\t" + llEscapeURL(str));
// output: "http%3A%2F%2Fwiki%2Esecondlife%2Ecom%2Fwiki%2FLSL%20Portal"
llOwnerSay("Escaped string unescaped again:\n\t" + llUnescapeURL( llEscapeURL(str) ));
// output: "http://wiki.secondlife.com/wiki/LSL Portal"
// because escaping and unescaping are exact opposite
// and unescaping an escaped string returns the original
// For readability's sake it would make more sense to do:
llOwnerSay("For readability's sake:\n\t" + "http://wiki.secondlife.com/wiki/" + llEscapeURL("LSL Portal"));
// output: "http://wiki.secondlife.com/wiki/LSL%20Portal"
}
}
  • The SL viewer pretty prints URLs when converting them to clickable links in chat and dialogs. To confirm that a URL was escaped as intended, right-click the URL and copy, then paste to inspect it in the chat bar; or wrap it between “<nolink>…</nolink>”; or examine your chat log in an external editor; or display the string with an alternative function like llSetText.
  • Prior to SL versions 1.19.1.81992, this function was limited to returning a maximum of 254 characters. SVC-470
Original wiki source

Some wiki templates and tables need their original context. View this article on the Second Life Wiki. Technical wording and examples are retained from the source; historical guidance may differ from current behavior.

From the Second Life Wiki

Community documentation adapted from LlEscapeURL, by Linden Research, Inc. and contributing residents.View contributors and history.

Imported wiki revision:

Licensed under CC BY-SA 3.0. Last wiki edit: .Formatting and links have been adapted for this site; API metadata follows the LSL definitions.