curl_easy_escape的第一个参数是做什么用的?
What is the first parameter of curl_easy_escape for?
curl的curl_easy_escape
函数以一个CURL*
作为第一个参数,如curl’s documentation表示:
char *curl_easy_escape(CURL *curl, const char *string, int length);
↑
我不明白这个参数有什么用,因为转义 URL 不需要 curl 句柄。其实curl的源码ignores this parameter.
如果我需要转义一个 URL 而无需像 the implementation of curl_escape
那样事先使用 curl 句柄,那么简单地使用 NULL
作为此参数是否安全?
这是为了向后的 ABI 兼容性。 CURL *curl
6年前使用过:curl_easy_escape, Curl_convert_to_network.
通过 NULL
过去和现在都是安全的:curl_escape, curl_easy_escape。
历史很有趣。 char *curl_unescape(const char *string, int length)
是第一个函数。后来 char *curl_easy_escape(CURL *handle, const char *string, int inlength)
在 iconv
的帮助下被引入以支持所有扩展的 ASCII 字符集。最后 curl_easy_escape
代码几乎回滚到 curl_unescape
并停止使用 CURL *handle
。
curl的curl_easy_escape
函数以一个CURL*
作为第一个参数,如curl’s documentation表示:
char *curl_easy_escape(CURL *curl, const char *string, int length);
↑
我不明白这个参数有什么用,因为转义 URL 不需要 curl 句柄。其实curl的源码ignores this parameter.
如果我需要转义一个 URL 而无需像 the implementation of curl_escape
那样事先使用 curl 句柄,那么简单地使用 NULL
作为此参数是否安全?
这是为了向后的 ABI 兼容性。 CURL *curl
6年前使用过:curl_easy_escape, Curl_convert_to_network.
通过 NULL
过去和现在都是安全的:curl_escape, curl_easy_escape。
历史很有趣。 char *curl_unescape(const char *string, int length)
是第一个函数。后来 char *curl_easy_escape(CURL *handle, const char *string, int inlength)
在 iconv
的帮助下被引入以支持所有扩展的 ASCII 字符集。最后 curl_easy_escape
代码几乎回滚到 curl_unescape
并停止使用 CURL *handle
。