From: MINAMI H. <mi...@mi...> - 2007-04-05 13:23:16
|
Nicholas Heer wrote: > So it seems that mlterm works > when LC_CTYPE=en_US.UTF-8, but does not work when LC_CTYPE="POSIX". Sorry, your uxterm seems to tweak LC_CTYPE, not LANG. If your locale is POSIX, mlterm will assume you are using ISO-8859-1 (to make dummies happy) and do not try to parse its input as UTF-8. It's not surprising you cannot see Arabic in this case. > So is > there any way to change LC_CTYPE from "POSIX" to en_US.UTF-8? I've looked > in all my Linux and Unix books for an explanation of how to change locales > and I can't find anything. And I can't understand the man pages for > locale and setlocale. LC_CTYPE is just yet another environment variable used to override LANG. As far as LC_CTYPE is one of a UTF-8 locale, mlterm will accept UTF-8 by default (even if LANG is undefined/POSIX/C/etc). However, if you don't have to use different values for LANG and LC_CTYPE, you should leave LC_CTYPE undefined and use LANG. Please try LANG=en_US.UTF-8 mlterm and if this works, consider to change LANG to be en_US.UTF-8. > It doesn't matter, however, if I don't succeed in > changing the locale since I can always run mlterm from an uxterm, but I'm > curious as to why mlterm acts this way on my computer. Basically, mlterm and application running on mlterm must agree which encoding to use. The encoding must of course support the character set you want (in this case, Arabic). Since uxterm seems to set LC_CTYPE to a UTF-8 locale, mlterm launched from uxterm and apps run from the mlterm will use UTF-8 (ignoring LANG). You should be able to use Arabic in this case. If neither LANG nor LC_CTYPE was defined, you can't expect so much. Is this clear enough? minami |