Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

CURLOPT_CONV_FROM_UTF8_FUNCTION (3)

Name

CURLOPT_CONV_FROM_UTF8_FUNCTION - 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

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)