具体的に以下のようなことがしばしば発生します。
1. 他の人が作成したファイルを特定の文字コードに変換しようとしても何故かできない。
2. php-modeは必ずEUC-JPで開くように設定しているのですが、編集中にどこかのタイミングで勝手にUTF-8に変換されてしまい、EUC-JPに戻そうと思っても戻らない。
set-buffer-file-coding-systemを実行した場合、左下のバーに表示される文字コードは一時的に希望する文字コードに変わるのですが、保存した瞬間に変換前の文字コードに自動的に戻ってしまいます。環境はubuntu hardy + emacsです。入力はSCIMを利用しています。
(gedit等を利用すれば普通に変換できるのですが、emacsが日本語に弱いのでしょうか?)
現在の安定版Emacs22だとどうなりますか?
もしEmacs22で正常ならば開発版だからこその問題でしょう。
それでもおかしいならば「M-x describe-coding-system」で文字コードの設定を見てみましょう。
あとは「M-x apropos coding.+alist$」で変数をチェックしてみましょう。
「# -*- coding: euc-jp -*-」のようなmagic commentを入れると必ずその文字コードになります。あるいは「Local Variables」セクションに「coding: euc-jp」を入れるという手もあります。
あと、Emacsのバージョンはなんですか?22以降はユニコードのサポートが強化されたので21以前ならば22にアップグレードすることをおすすめします。
保存した瞬間に文字コードが戻ってしまうということは、すでにmagic commentかLocal Variablesセクションが書かれていると思います。
ご回答ありがとうございます。
いつもブログ拝見させて頂いております!
magic commentとLocal Variablesについては検証をしてみて、コメントにて結果を報告させて頂きます。
ちなみにOSはUbuntu hardyでemacsは最新版のemacs-snapshotを利用しております。
ご回答ありがとうございました。
今後とも宜しくお願い致します。
追記:
コメント追加しました
変換だけだったら,nkfとか使ったほうが早い。
それとbuffer とfileは別だと思います。
> 変換だけだったら,nkfとか使ったほうが早い。
最悪nkfとかで変換はできるのですが、わざわざコマンドラインで変換してからっていうのも面倒なので、
emacs上で解決したいと思い、質問させて頂きました。(emacs上で変換できるはずだろうと思ったので。)
> それとbuffer とfileは別だと思います。
その通りですね。
今回の質問の意味はファイルを特定の文字コードで保存できなくて困っている、ということです。
ご回答ありがとうございました。
現在の安定版Emacs22だとどうなりますか?
もしEmacs22で正常ならば開発版だからこその問題でしょう。
それでもおかしいならば「M-x describe-coding-system」で文字コードの設定を見てみましょう。
あとは「M-x apropos coding.+alist$」で変数をチェックしてみましょう。
> 現在の安定版Emacs22だとどうなりますか?
> もしEmacs22で正常ならば開発版だからこその問題でしょう。
まさにこれが原因だったようです。
とても助かりました。
度重なるご回答どうもありがとうございました。
追記:
emacsスナップショットじゃないとアンチエイリアスがかからないので、それだけが心残りです。。
> 現在の安定版Emacs22だとどうなりますか?
> もしEmacs22で正常ならば開発版だからこその問題でしょう。
まさにこれが原因だったようです。
とても助かりました。
度重なるご回答どうもありがとうございました。
追記:
emacsスナップショットじゃないとアンチエイリアスがかからないので、それだけが心残りです。。