# BIND_TEXTDOMAIN_CODESET - set encoding of message translations - man(3) - [phpMan]

[_BIND_TEXTDOMAIN_CODESET_(3)](https://www.chedong.com/phpMan.php/man/BINDTEXTDOMAINCODESET/3/markdown)            Library Functions Manual            [_BIND_TEXTDOMAIN_CODESET_(3)](https://www.chedong.com/phpMan.php/man/BINDTEXTDOMAINCODESET/3/markdown)

## NAME
       bind_textdomain_codeset - set encoding of message translations

## SYNOPSIS
### #include <libintl.h>

       **char * bind_textdomain_codeset (const char * _**domainname_**,**
                                       **const char * _**codeset_**);**

## DESCRIPTION
       The  **bind_textdomain_codeset **function sets the output codeset for message catalogs for domain
       _domainname_.

       A message domain is a set of translatable _msgid_ messages. Usually, every software package has
       its own message domain.

       By default, the **gettext **family of functions returns translated messages in the locale's char‐
       acter encoding, which  can  be  retrieved  as  **nl_langinfo(CODESET)**.  The  need  for  calling
       **bind_textdomain_codeset  **arises  for programs which store strings in a locale independent way
       (e.g.  UTF-8) and want to avoid an extra character set conversion on the returned  translated
       messages.

       _domainname_ must be a non-empty string.

       If _codeset_ is not NULL, it must be a valid encoding name which can be used for the **iconv_open**
       function.  The  **bind_textdomain_codeset **function sets the output codeset for message catalogs
       belonging to domain _domainname_ to _codeset_. The function makes copies of the argument  strings
       as needed.

       If  _codeset_  is  NULL, the function returns the previously set codeset for domain _domainname_.
       The default is NULL, denoting the locale's character encoding.

## RETURN VALUE
       If successful, the **bind_textdomain_codeset **function returns the current  codeset  for  domain
       _domainname_,  after  possibly  changing  it.  The  resulting  string  is  valid until the next
       **bind_textdomain_codeset **call for the same _domainname_ and must not be modified or freed. If  a
       memory allocation failure occurs, it sets **errno **to **ENOMEM **and returns NULL. If no codeset has
       been set for domain _domainname_, it returns NULL.

## ERRORS
       The following error can occur, among others:

       **ENOMEM **Not enough memory available.

## BUGS
       The return type ought to be **const char ***, but is **char * **to avoid warnings in C code predating
       ANSI C.

## SEE ALSO
       [**gettext**(3)](https://www.chedong.com/phpMan.php/man/gettext/3/markdown),  [**dgettext**(3)](https://www.chedong.com/phpMan.php/man/dgettext/3/markdown),  [**dcgettext**(3)](https://www.chedong.com/phpMan.php/man/dcgettext/3/markdown),  [**ngettext**(3)](https://www.chedong.com/phpMan.php/man/ngettext/3/markdown),  [**dngettext**(3)](https://www.chedong.com/phpMan.php/man/dngettext/3/markdown),  [**dcngettext**(3)](https://www.chedong.com/phpMan.php/man/dcngettext/3/markdown), **textdo‐**
       [**main**(3)](https://www.chedong.com/phpMan.php/man/main/3/markdown), [**nl_langinfo**(3)](https://www.chedong.com/phpMan.php/man/nllanginfo/3/markdown), [**iconv_open**(3)](https://www.chedong.com/phpMan.php/man/iconvopen/3/markdown)

GNU gettext 0.20.1.124-32cf                   May 2001                    [_BIND_TEXTDOMAIN_CODESET_(3)](https://www.chedong.com/phpMan.php/man/BINDTEXTDOMAINCODESET/3/markdown)
