Помогите с переводом строки в верхний и нижний регистры. Функция должна работать как для однобайтовой кодировке, так и для многобайтовой.
Относительно многобайтовой кодировки, проблему _временно_ решил переводом строки из кодировки nl_langinfo (CODESET) в UTF-8 и затем переводом в кодировку понимаемую glib'ом через g_utf8_get_char/g_utf8_next_char и использованием g_unichar_tolower. Получилось коряво =(, если подскажете как перевести в glib'овский юникод из nl_langinfo (CODESET), скажу спасибо. Это был вопрос номер раз.
Вопрос номер два. Если я использую nl_langinfo (CODESET) для идентификации текущей кодировки, и если кодировка nl_langinfo (CODESET) однобайтовая, то зачем мне перекодировать строку, когда я спокойно могу воспользоваться glibc'ными tolower и toupper?! И вот вопос, как определить, что кодировка nl_langinfo (CODESET) однобайтовая?