>The POSIXy way to do that would be to refer to the LC_CHARSET
>environment variable, but then consider
>
>LC_CHARSET=UTF-16 c99 foo.c
>
>where 'foo.c' is in UTF-16 and contains '#include <stdio.h>',
Not really a problem for a number of reasons. First, it's LC_CTYPE
you're thinking of. Second, the narrow character set can only be 16-bits
wide if "char" is 16-bits. Thirdly, if the character set that LC_CTYPE
selects isn't superset of the POSIX portable character set then result
is undefined. So if <stdio.h> happens to writen using characters only
from C basic character set (which is a subset of the portable character
set), there isn't a problem.
Ross Ridge