On Tue, 18 Dec 2001, Markus Kuhn wrote:
> The proper way of determining the encoding used by the current locale is
> not to look at a single locale variable, but to query the Single Unix
> Specification (and now also POSIX) function nl_langinfo(CODESET), as for
> example in
>
> utf8_mode = (strcmp(nl_langinfo(CODESET), "UTF-8") == 0);
Thanks. This is something that should be added to Emacs. For now, Emacs
implements the backup procedure, which is the Lisp equivalent of the
following:
> char *s;
> int utf8_mode = 0;
>
> if ((s = getenv("LC_ALL")) ||
> (s = getenv("LC_CTYPE")) ||
> (s = getenv("LANG"))) {
> if (strstr(s, "UTF-8"))
> utf8_mode = 1;
> }
>
> It is important that you do not only test LANG, but the first variable
> in the sequence LC_ALL, LC_CTYPE and LANG that has a value.
That is what Emacs does.
--
Linux-UTF8: i18n of Linux on all levels
Archive: http://mail.nl.linux.org/linux-utf8/