CURLOPT_CONV_FROM_UTF8_FUNCTION - ing
#include <curl/curl.h> CURLcode conv_callback(char *ptr, size_t length); CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CONV_FROM_UTF8_FUNCTION, conv_callback);
curl_easy_setopt options CURLOPT_CONV_FROM_UTF8_FUNCTION(3) NAME CURLOPT_CONV_FROM_UTF8_FUNCTION - convert data from UTF8 to host encod- ing SYNOPSIS #include <curl/curl.h> CURLcode conv_callback(char *ptr, size_t length); CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CONV_FROM_UTF8_FUNCTION, conv_callback); DESCRIPTION Pass a pointer to your callback function, which should match the proto- type shown above. Applies to non-ASCII platforms. curl_version_info(3) will return the CURL_VERSION_CONV feature bit set if this option is provided. The data to be converted is in a buffer pointed to by the ptr parame- ter. The amount of data to convert is indicated by the length parame- ter. The converted data overlays the input data in the buffer pointed to by the ptr parameter. CURLE_OK must be returned upon successful con- version. A CURLcode return value defined by curl.h, such as CURLE_CONV_FAILED, should be returned if an error was encountered. CURLOPT_CONV_FROM_UTF8_FUNCTION converts to host encoding from UTF8 encoding. It is required only for SSL processing. If you set a callback pointer to NULL, or do not set it at all, the built-in libcurl iconv functions will be used. If HAVE_ICONV was not defined when libcurl was built, and no callback has been established, conversion will return the CURLE_CONV_REQD error code. If HAVE_ICONV is defined, CURL_ICONV_CODESET_OF_HOST must also be defined. For example: #define CURL_ICONV_CODESET_OF_HOST "IBM-1047" The iconv code in libcurl will default the network and UTF8 codeset names as follows: #define CURL_ICONV_CODESET_OF_NETWORK "ISO8859-1" #define CURL_ICONV_CODESET_FOR_UTF8 "UTF-8" You will need to override these definitions if they are different on your system. DEFAULT NULL PROTOCOLS TLS-based protocols. EXAMPLE static CURLcode my_conv_from_utf8_to_ebcdic(char *buffer, size_t length) { char *tempptrin, *tempptrout; size_t bytes = length; int rc; tempptrin = tempptrout = buffer; rc = platform_u2e(&tempptrin, &bytes, &tempptrout, &bytes); if(rc == PLATFORM_CONV_OK) { return CURLE_OK; } else { return CURLE_CONV_FAILED; } } curl_easy_setopt(curl, CURLOPT_CONV_FROM_UTF8_FUNCTION, my_conv_from_utf8_to_ebcdic); AVAILABILITY Not available since 7.82.0 Available only if CURL_DOES_CONVERSIONS was defined when libcurl was built. RETURN VALUE Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. ATTRIBUTES See attributes(7) for descriptions of the following attributes: +---------------+------------------+ |ATTRIBUTE TYPE | ATTRIBUTE VALUE | +---------------+------------------+ |Availability | web/curl | +---------------+------------------+ |Stability | Uncommitted | +---------------+------------------+ SEE ALSO CURLOPT_CONV_TO_NETWORK_FUNCTION(3), CURLOPT_CONV_FROM_NETWORK_FUNC- TION(3), NOTES Source code for open source software components in Oracle Solaris can be found at https://www.oracle.com/downloads/opensource/solaris-source- code-downloads.html. This software was built from source available at https://github.com/oracle/solaris-userland. The original community source was downloaded from https://curl.se/down- load/curl-7.83.1.tar.bz2. Further information about this software can be found on the open source community website at http://curl.haxx.se/. libcurl 7.83.1 February 03, 2022 CURLOPT_CONV_FROM_UTF8_FUNCTION(3)