人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

emacsのset-buffer-file-coding-systemで文字コードを変換できないことが結構あります。解決方法があれば教えて下さい。かなり困っています。

具体的に以下のようなことがしばしば発生します。
1. 他の人が作成したファイルを特定の文字コードに変換しようとしても何故かできない。
2. php-modeは必ずEUC-JPで開くように設定しているのですが、編集中にどこかのタイミングで勝手にUTF-8に変換されてしまい、EUC-JPに戻そうと思っても戻らない。

set-buffer-file-coding-systemを実行した場合、左下のバーに表示される文字コードは一時的に希望する文字コードに変わるのですが、保存した瞬間に変換前の文字コードに自動的に戻ってしまいます。環境はubuntu hardy + emacsです。入力はSCIMを利用しています。
(gedit等を利用すれば普通に変換できるのですが、emacsが日本語に弱いのでしょうか?)


●質問者: tomoyuki28jp
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Emacs EUC-JP PHP SCIM SET
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● redwing1
●30ポイント

emacsの日本語文字コードは完全ではないので、CJKなどを入れるとましになります。

◎質問者からの返答

ご回答ありがとうございます。

参考にさせて頂きます。


2 ● るびきち
●30ポイント

「# -*- 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を利用しております。

ご回答ありがとうございました。

今後とも宜しくお願い致します。

追記:

コメント追加しました


3 ● redwing1
●22ポイント

変換だけだったら,nkfとか使ったほうが早い。

それとbuffer とfileは別だと思います。

◎質問者からの返答

> 変換だけだったら,nkfとか使ったほうが早い。

最悪nkfとかで変換はできるのですが、わざわざコマンドラインで変換してからっていうのも面倒なので、

emacs上で解決したいと思い、質問させて頂きました。(emacs上で変換できるはずだろうと思ったので。)


> それとbuffer とfileは別だと思います。

その通りですね。

今回の質問の意味はファイルを特定の文字コードで保存できなくて困っている、ということです。

ご回答ありがとうございました。


4 ● るびきち
●50ポイント ベストアンサー

現在の安定版Emacs22だとどうなりますか?

もしEmacs22で正常ならば開発版だからこその問題でしょう。

それでもおかしいならば「M-x describe-coding-system」で文字コードの設定を見てみましょう。

あとは「M-x apropos coding.+alist$」で変数をチェックしてみましょう。

◎質問者からの返答

> 現在の安定版Emacs22だとどうなりますか?

> もしEmacs22で正常ならば開発版だからこその問題でしょう。

まさにこれが原因だったようです。

とても助かりました。

度重なるご回答どうもありがとうございました。


追記:

emacsスナップショットじゃないとアンチエイリアスがかからないので、それだけが心残りです。。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ