emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Setting file-name/process coding system from LANG


From: Miles Bader
Subject: Setting file-name/process coding system from LANG
Date: Wed, 13 Oct 2004 17:44:16 +0900

I use "Japanese" language environment, and my LANG environment variable is
set to "ja_JP.UTF-8".

It seems to me that LANG should be enough to force filenames and process
I/O coding to use utf-8, regardless of the Emacs language-environment
setting -- after all, the language-environment is more of a broad hint how
to operate, whereas LANG can say specifically what coding system to use,
and will cause subprocesses to do their I/O in that coding system -- but
this doesn't seem to happen.

If I start emacs with -q, it will set things up correctly from LANG (so
for instance, starting a shell and do a ls will show utf-8 encoded
filenames correctly).

However, as soon as I do `M-x set-language-environment RET Japanese RET',
then default-file-name-coding-system gets set to `japanese-iso-8bit', and
the default coding system for process I/O is also `japanese-iso-8bit',
which is wrong.

I use the following code in my .emacs:

   (when (and (getenv "LANG") (string-match "\\<utf-8$" (getenv "LANG")))
     (setq file-name-coding-system 'utf-8)
     (setq process-coding-system-alist '(("" . utf-8-unix))))

which forces them to use utf-8 instead, and this works, but I'd think
this shouldn't be necessary if I have LANG set.

[Note I'm currently using Emacs 22 (unicode branch), but the same thing
happens with CVS trunk Emacs.]

Thanks,

-Miles
-- 
A zen-buddhist walked into a pizza shop and
said, "Make me one with everything."




reply via email to

[Prev in Thread] Current Thread [Next in Thread]