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/

Reply via email to