1 #ifndef SHARE__UTF8_H 2 #define SHARE__UTF8_H 3 4 /* 5 * Convert a string between UTF-8 and the locale's charset. 6 * Invalid bytes are replaced by '#', and characters that are 7 * not available in the target encoding are replaced by '?'. 8 * 9 * If the locale's charset is not set explicitly then it is 10 * obtained using nl_langinfo(CODESET), where available, the 11 * environment variable CHARSET, or assumed to be US-ASCII. 12 * 13 * Return value of conversion functions: 14 * 15 * -1 : memory allocation failed 16 * 0 : data was converted exactly 17 * 1 : valid data was converted approximately (using '?') 18 * 2 : input was invalid (but still converted, using '#') 19 * 3 : unknown encoding (but still converted, using '?') 20 */ 21 22 int utf8_encode(const char *from, char **to); 23 int utf8_decode(const char *from, char **to); 24 25 #endif 26