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

[plamo:06528] Re: Mule の処理する日本語コードについて



>>>>> plamo の No. 06527
>>>>> Message-Id: <200006301349.AEH16192.SLU2FB@ipec.pref.hokkaido.jp> で、
>>>>> "寺元" == "Teramoto K." <ktera1@ipec.pref.hokkaido.jp>さま曰く...

寺元> .emacsが
寺元> (setq coding-system-for-read 'euc-jp)

coding-system-for-read は非常に下位レベルで強力な変数ですので、ユーザが
直接はいじらないほうがよろしいと思います。

これをはずしてしまって、 (set-language-environment 'Japanese) を最初に書
いておくのが良いと思います。
euc-japan や shift_jis はコード体型の都合上、これを実行しておかないと、
自動判定はできません。(*1)

寺元> の状態では新規作成ファイルはeucで保存されますが、
寺元> jisやs-jisの既存ファイルの表示が化けます。

coding-system-for-read が設定されているので、自動判定が無効になっている
のでしょう。

寺元> 上記をコメントにすると各文字コードのファイルは
寺元> 正しく表示されますが、新規ファイルがjisで保存されて
寺元> しまいます。

これに関しては set-language-environment より*後ろ*に 
(set-default-coding-systems 'euc-japan) と書いておけばよいと思います。

寺元>  新規ファイルがeucで保存できて既存ファイルも
寺元> 正しく表示されるような“.emacs”の設定を
寺元> 教えていただきたいのですが。

ということでまとめると、 .emacs に
(set-language-environment 'Japanese)
(set-default-coding-systems 'euc-japan)
の2行を書けばよいということになります。

寺元>  Mule 19.x の頃の情報は色々あるようなのですが、
寺元> 試してみてもエラーになります。19 と 20 で大きく
寺元> 変更になったんでしょうか。

はい。 Mule の多国語サポート部分は、 GNU Emacs 20.x に取り込まれています
がその際に大きく変更されました。
ということで、現在では Mule というソフトウェアは単独では存在しません。

----
*1: このため、 .emacs 等起動ファイル自体には euc-japan / shift_jis 等は
  基本的には使用できません。 .emacs 内で日本語を使いたいときには、 
  iso-2022-7bit で作成しておくことをお勧めします。

  また、最初は日本語が入っていなかったものに、途中で追加した等の場合、上
  の設定を行った環境では、そのまま保存すると .emacs が euc-japan になる
  はずです。

  こうなってしまうと、なかなか面倒なことになりますので、この手のファイル
  にはファイルの作成時すぐに、先頭に ;; -*- coding: iso-2022-7bit -*- と
  いうものを入れることにしています。

  すでに euc-japan 等で保存されているものに、あとからこれを入れてしまう
  と、ぐちゃぐちゃになってしまうことがあります。これを入れた場合には、
  その場で C-x C-m f iso-2022-7bit [RET] することを忘れないようにしてく
  ださい。

  ;; 経験者は語る。 ^^;;;

-- 
鈴木圭一 / keiichi@nanap.org
PGP finger print (DH/DSS)
0B32 B37E 6DE9 3BC1 68A4  4089 7AAF 2B03 ECBD 614B

Follow-Ups
[plamo:06529] Re: Mule の処理する日本語コードについて, Teramoto K.
References
[plamo:06527] Muleの処理する日本語コードについて, Teramoto K.

[検索ページ] [メール一覧]
Plamo ML 公開システム