モーグルとカバとパウダーの日記

モーグルやカバ(EXカービング)山スキー(BC)などがメインの日記でした。今は仕事のコンピュータ系のネタが主になっています。以前はスパム対策関連が多かったのですが最近はディープラーニング関連が多めです。

Windows版のEmacsで「.tpl」のファイルだけ文字コードが化ける

CakePHPからtwigを使えるようにしたところ、テンプレートファイルの拡張子名が「.tpl」になったのですが、なぜかこれだと文字化けが発生するようになりました。


いろいろ調べてみたところ

  • Windows版のEmacs(少なくとも23と24)
  • ファイルの拡張子名が「.tpl

の条件でファイルを読み込むと、文字コードがユニバイトになってしまい文字化けが発生してしまうようです。
LinuxMacで自分が試した限り、Windows版以外では起こりませんでした。


例えば下記の掲示板でも、Windows版のEmacs23で.tplの拡張子の場合のみ、文字コードがおかしくなることが報告されています。

Forums: ご意見掲示板 - 24.0.92 - 日本語文字コード判別が不正 - gnupack (cygwn + emacs package) - SourceForge.JP


対策方法は、下記ページに書かれていた


http://digitalbox.jp/happy-go-lucky-computing/development/howto-fix-coding-system-for-smarty-templates-on-emacs/
EmacsSmarty テンプレート(*.tpl )が文字化け - digitalbox

.emacs に以下の行を追加します。

(modify-coding-system-alist 'file "\\.tpl\\'" 'utf-8-unix)

で解決出来ました。