1 /* Encoding utility from UTF-8 to locale and vice versa
2 Copyright (C) 2001, 2002 Peter Verthez
4 Permission granted to do anything with this file that you want, as long
5 as the above copyright is retained in all copies.
6 THERE IS NO WARRANTY - USE AT YOUR OWN RISK
16 #include "libcharset.h"
18 static convert_t locale_conv = NULL;
20 void close_conversion_contexts()
22 cleanup_utf8_conversion(locale_conv);
25 int open_conversion_contexts()
27 assert (locale_conv == NULL);
28 locale_conv = initialize_utf8_conversion(locale_charset(), 0);
31 atexit(close_conversion_contexts);
39 void convert_set_unknown(const char* unknown)
42 open_conversion_contexts();
43 conversion_set_unknown(locale_conv, unknown);
46 char* convert_utf8_to_locale(const char* input, int *conv_fails)
49 open_conversion_contexts();
51 return convert_from_utf8(locale_conv, input, conv_fails, NULL);
54 char* convert_locale_to_utf8(const char* input)
57 open_conversion_contexts();
59 return convert_to_utf8(locale_conv, input, strlen(input));