2024-03-15 20:55:33 -06:00
|
|
|
.\" generated by cd2nroff 0.1 from curl_easy_escape.md
|
2024-07-29 18:00:04 -06:00
|
|
|
.TH curl_easy_escape 3 "2024-07-29" libcurl
|
2024-03-15 20:55:33 -06:00
|
|
|
.SH NAME
|
2024-07-29 18:00:04 -06:00
|
|
|
curl_easy_escape \- URL encode a string
|
2024-03-15 20:55:33 -06:00
|
|
|
.SH SYNOPSIS
|
|
|
|
.nf
|
|
|
|
#include <curl/curl.h>
|
|
|
|
|
|
|
|
char *curl_easy_escape(CURL *curl, const char *string, int length);
|
|
|
|
.fi
|
|
|
|
.SH DESCRIPTION
|
2024-07-29 18:00:04 -06:00
|
|
|
This function converts the given input \fIstring\fP to a URL encoded string and
|
|
|
|
returns that as a new allocated string. All input characters that are not a\-z,
|
|
|
|
A\-Z, 0\-9, \(aq\-\(aq, \(aq.\(aq, \(aq_\(aq or \(aq~\(aq are converted to their "URL escaped" version
|
|
|
|
(\fB%NN\fP where \fBNN\fP is a two\-digit hexadecimal number).
|
2024-03-15 20:55:33 -06:00
|
|
|
|
2024-07-29 18:00:04 -06:00
|
|
|
If \fIlength\fP is set to 0 (zero), \fIcurl_easy_escape(3)\fP uses strlen() on the input
|
|
|
|
\fIstring\fP to find out the size. This function does not accept input strings
|
|
|
|
longer than \fBCURL_MAX_INPUT_LENGTH\fP (8 MB).
|
2024-03-15 20:55:33 -06:00
|
|
|
|
|
|
|
You must \fIcurl_free(3)\fP the returned string when you are done with it.
|
|
|
|
.SH ENCODING
|
|
|
|
libcurl is typically not aware of, nor does it care about, character
|
|
|
|
encodings. \fIcurl_easy_escape(3)\fP encodes the data byte\-by\-byte into the
|
|
|
|
URL encoded version without knowledge or care for what particular character
|
|
|
|
encoding the application or the receiving server may assume that the data
|
|
|
|
uses.
|
|
|
|
|
|
|
|
The caller of \fIcurl_easy_escape(3)\fP must make sure that the data passed in
|
|
|
|
to the function is encoded correctly.
|
2024-07-29 18:00:04 -06:00
|
|
|
.SH URLs
|
|
|
|
URLs are by definition \fIURL encoded\fP. To create a proper URL from a set of
|
|
|
|
components that may not be URL encoded already, you cannot just URL encode the
|
|
|
|
entire URL string with \fIcurl_easy_escape(3)\fP, because it then also converts
|
|
|
|
colons, slashes and other symbols that you probably want untouched.
|
|
|
|
|
|
|
|
To create a proper URL from strings that are not already URL encoded, we
|
|
|
|
recommend using libcurl\(aqs URL API: set the pieces with \fIcurl_url_set(3)\fP and get
|
|
|
|
the final correct URL with \fIcurl_url_get(3)\fP.
|
2024-03-30 12:28:04 -06:00
|
|
|
.SH PROTOCOLS
|
2024-07-29 18:00:04 -06:00
|
|
|
This functionality affects all supported protocols
|
2024-03-15 20:55:33 -06:00
|
|
|
.SH EXAMPLE
|
|
|
|
.nf
|
|
|
|
int main(void)
|
|
|
|
{
|
|
|
|
CURL *curl = curl_easy_init();
|
|
|
|
if(curl) {
|
|
|
|
char *output = curl_easy_escape(curl, "data to convert", 15);
|
|
|
|
if(output) {
|
|
|
|
printf("Encoded: %s\\n", output);
|
|
|
|
curl_free(output);
|
|
|
|
}
|
|
|
|
curl_easy_cleanup(curl);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.fi
|
2024-07-29 18:00:04 -06:00
|
|
|
.SH HISTORY
|
|
|
|
Since 7.82.0, the \fBcurl\fP 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.
|
2024-03-15 20:55:33 -06:00
|
|
|
.SH AVAILABILITY
|
2024-07-29 18:00:04 -06:00
|
|
|
Added in curl 7.15.4
|
2024-03-15 20:55:33 -06:00
|
|
|
.SH RETURN VALUE
|
|
|
|
A pointer to a null\-terminated string or NULL if it failed.
|
|
|
|
.SH SEE ALSO
|
|
|
|
.BR curl_easy_unescape (3),
|
2024-07-29 18:00:04 -06:00
|
|
|
.BR curl_url_get (3),
|
|
|
|
.BR curl_url_set (3)
|