32020


emacs で、今開いているファイルのエンコーディングを表示したいと考えました。  
(emacs がそのファイルの読み取りの際に利用したエンコーディング)  
これは、どうやったら実現できますでしょうか？


CC BY-SA 3.0
2017-01-20T03:47:24.670
32007
2017-01-20T09:59:35.607
754
question
emacs
emacs で現在の読み込みエンコーディングを表示するには？


オイラんちの emacs-23.3.1 (i386-mingw-nt5.1.2600) では

[code]

    (describe-variable 'buffer-file-coding-system)
    
[/code]

でいけたっぽいです。  
オイラの作った C# プロジェクトのソースファイルをテキトーに開いた結果、  
デザイナが自動で作る `Resources.ja-JP.resx` に対しては `utf-8-with-signature-dos` とか  
`cp932` で書いた `Program.cs` に対しては `japanese-shift-jis-dos` とか  
が観測されました。

キー操作なら `M-x describe-variable` の後 `buffer-file-coding-system` っすね。


CC BY-SA 3.0
2017-01-20T05:26:49.923
32012
2017-01-20T05:26:49.923
8589
32007
answer


`M-x describe-current-coding-system` はどうでしょうか。  
現在開いているバッファのエンコーディングなど、Emacsが関わるエンコーディング設定を`*Help*`バッファに一覧表示します。

また、デフォルトではモードライン左端に現在の文字コード（と改行コード）が表示されています。これを確認するのが手っ取り早いかと思います。

  * `-` undecided (ascii)
  * `=` no-conversion (binary)
  * `S` shift_jis
  * `E` euc-jp
  * `J` iso-2022
  * `U` utf-8

[![emacs-
HELLO](https://i.stack.imgur.com/D3G8j.png)](https://i.stack.imgur.com/D3G8j.png)

試しに`<help> h`でHELLOファイルを開くとスクリーンショットのように表示されます。


CC BY-SA 3.0
2017-01-20T09:13:12.340
32020
2017-01-20T09:13:12.340
2391
32007
answer


さらに別解として、`describe-coding-system`ならデフォルトで`C-h C`に割り当てられているのでお手軽です。`Describe
coding system:`というプロンプトで空Enterすると、上記の`describe-current-coding-system`が実行されます。


CC BY-SA 3.0
2017-01-20T09:59:35.607
32024
2017-01-20T09:59:35.607
4010
32007
answer