Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
curl_easy_unescape(3)	   Library Functions Manual	 curl_easy_unescape(3)

NAME
       curl_easy_unescape - URL	decode a string

SYNOPSIS
       #include	<curl/curl.h>

       char *curl_easy_unescape(CURL *curl, const char *input,
				int inlength, int *outlength);

DESCRIPTION
       This function converts the URL encoded string input to a	"plain string"
       and returns that	in an allocated	memory area. All input characters that
       are  URL	 encoded  (%XX where XX	is a two-digit hexadecimal number) are
       converted to their binary versions. Although  not  constrained  by  its
       type, the returned data may not be altered.

       If  the	length argument	is set to 0 (zero), curl_easy_unescape(3) uses
       strlen()	on input to find out the size.

       If outlength is non-NULL, the function writes the  length  of  the  re-
       turned  string in the integer it	points to. This	allows proper handling
       even for	strings	containing %00.	Since this is  a  pointer  to  an  int
       type,  it can only return a value up to INT_MAX so no longer string can
       be returned in this parameter.

       Since 7.82.0, the curl parameter	is ignored. Prior to  that  there  was
       per-handle  character conversion	support	for some old operating systems
       such as TPF, but	it was otherwise ignored.

       You must	curl_free(3) the returned string when you are done with	it.

PROTOCOLS
       This functionality affects all supported	protocols

EXAMPLE
       int main(void)
       {
	 CURL *curl = curl_easy_init();
	 if(curl) {
	   int decodelen;
	   char	*decoded = curl_easy_unescape(curl, "%63%75%72%6c", 12,	&decodelen);
	   if(decoded) {
	     /*	do not assume printf() works on	the decoded data */
	     printf("Decoded: ");
	     /*	... */
	     curl_free(decoded);
	   }
	   curl_easy_cleanup(curl);
	 }
       }

AVAILABILITY
       Added in	curl 7.15.4

RETURN VALUE
       A pointer to a null-terminated string or	NULL if	it failed.

SEE ALSO
       curl_easy_escape(3), curl_url_get(3)

libcurl				  2026-06-11		 curl_easy_unescape(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=curl_easy_unescape&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help