読者です 読者をやめる 読者になる 読者になる

彼女からは、おいちゃんと呼ばれています

ウェブ技術や日々考えたことなどを綴っていきます

Selected encoding mule-utf-8-unix disagrees with iso-2022-jp-unix specified by file contents.

Git と Emacs を使っているときに下記メッセージに遭遇したのでメモしておきます。

Selected encoding mule-utf-8-unix disagrees with iso-2022-jp-unix specified by file contents. Really save (else edit coding cookies and try again)? (yes or no)

遭遇したタイミング

$ git commit -v

してコミットメッセージを編集(エディタは Emacs)し、コミットメッセージを保存しようとしたときに遭遇しました。

原因

コミットメッセージのファイル(xxx/.git/COMMIT_EDITMSG)の文字コードがどういうわけか「iso-2022-jp」になっていて、それを Emacs が「utf-8」で保存しようとしたので「待った」がかかったのだと思われます(エラーメッセージそのままなのですが)

ただ、どうして COMMIT_EDITMSG ファイルの文字コードが「iso-2022-jp」になっていたのかは未だに分かりません。

対策

そのまま保存するのは抵抗があったので、いったん保存をキャンセルし、COMMIT_EDTMSG の文字コードを CotEditer で「utf-8」に変換しました。

それから改めて「git commit -v」するとうまくいきました。

おわりに

以上です。エラーメッセージをそのまま検索ボックスに入れてググっても、欲しいページが見つからなかったので、後で同じメッセージに遭遇するどなたかのためにメモしてみました。その「どなたか」が自分かもしれませんが...

ではでは。