| bind_textdomain_codeset - set encoding of message translations | 
| #include <libintl.h>
char * bind_textdomain_codeset (const char * domainname,
                                const char * codeset);
 | 
| 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 character 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. | 
| 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. | 
| The following error can occur, among others: | 
| ENOMEM | 
| Not enough memory available. | 
| The return type ought to be const char *, but is char * to avoid warnings in C code predating ANSI C. | 
| gettext(3), dgettext(3), dcgettext(3), ngettext(3), dngettext(3), dcngettext(3), textdomain(3), nl_langinfo(3), iconv_open(3) |