# Unescape URI-Encoded String
> [HTML Version](unescapeuri-encodedstring.htm)
_Updated November 2025_
**xcall CGIUTL, CGIOP\_UNESCAPE, in, out, status**
_Opcode 9_, CGIOP\_UNESCAPE, is a utility function—not limited to CGI programs—used to convert URI-encoded (or percent-encoded) strings to the ASCII equivalent. This type of encoding is primarily used for URLs and URIs (e.g. web addresses) and consists of replacing certain special characters (primarily "\!#\$\&'()\*+,/:;=?@\[\] ") with %xx where xx is the hex value of the original ASCII byte code. Although those are typically the only characters encoded this way in URI's, the function converts all %xx sequences to the equivalent raw ASCII characters. In addition, it will convert any "+" appearing after an initial "?" to a space (since query parameters appended to URLs start with "?" and usually replace any spaces with "+".
**Parameters**
_in _([String](string.htm.md)) \[in\]
URI-encoded string to unescape
_out_ ([String](string.htm.md)) \[out\]
receives the output , dynamic string ok
_status _([Num](num.htm.md)) \[out\]
returns a status code (0 for ok)
**See Also**
• [fnescape.bsi in SOSLIB:\[907,10\]](https://bitbucket.org/microsabio/soslib/src/master/907010/fnescape.bsi)