Если у вас полная реализация POSIX.2 1996, то проще всего воспользоваться утилитой locale. Применяя locale можно получить множество полезных сведений:
- какие возможные значения locale уже
инсталлированы и известны системе.
$ locale -a
- каковы текущие значения
отдельных категорий локализации :
$ locale
- каково внутреннее содержание
какой-либо категории :
$ locale LC_CTYPE
$ locale LC_TIME
e.t.c.
- каковы текущие значения ключей (keywords)
в какой-либо категории локализации
:
$ locale alpha
$ locale toupper
$ locale abmon
e.t.c.
Также можно воспользоваться такой короткой прогрммкой :
/* testlocl.c : Минимальная проверка работоспособности locale,
категория LC_CTYPE, "ключевое слово" - alpha */
#include <stdio.h>
#include <locale.h>
#include <ctype.h>
main() {
unsigned char c=0x0f9;
setlocale(LC_ALL, "");
printf("LC_CTYPE\t= %s\n", setlocale(LC_CTYPE, NULL));
printf("isalpha(%c)\t= %s\n", c, isalpha(c) ? "yes" : "no" );
return 0;
}
Для русской локализации в КОИ-8 согласно RFC-1489 код f9h - это русская буква "Ы" : F9 CYRILLIC CAPITAL LETTER YERI т.е. :
$ cc -o testlocl testlocl.c $ ./testlocl LC_CTYPE = ru_RU.KOI8-R isalpha(Ы) = yes