It is quite simple. There is a FreeBSD core and it uses
C locale throughout.
Then Django starts and after its start it does not look back to the core. Anything it needs, as far as its environment setup, takes from this
/usr/local/www/freenasUI/settings.py And that files tells FreeNAS UI to use English US and internationalization (= i18n). Among other things, internationalization means UTF-8, as opposed to ASCII, so we get
en_US.UTF-8 locale in the Shell started from the GUI. That shell is wrapped in and comes directly from Django :)
SSH lives back in the FreeBSD core, Django just tells FreeBSD to start it. SSH does not take its enviroment from
/usr/local/www/freenasUI/settings.py
So somebody came up with the idea of forcing the login environment to be
en_US.UTF-8 http://forums.freenas.org/index.php...not-displayed-in-ssh.10590/page-2#post-103886
Good idea, however applies only to login shells. In general, the locale setup should be either done globally (so instead of
C there would be
en_US.UTF-8 everywhere) or in the shell startup files. Login files should only define interactive properties related to logins. So I made a suggestion to modify
.cshrc , since the root default shell is tcsh. And, for the safety and consistency,
.bashrc and
.shrc should be adjusted too.
Similarly confused situation existed centuries ago when X11 was used... ;)
Until FreeNAS is rewritten please help by voting for
bug 5287