GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Coding.html ・ emacs-doc.conao3.com

24.9 ファイルテキストのコーディングシステムの指定

Emacsがファイルの内容に適したコーディングシステムを自動的に選択しない場合は、以下のコマンドを使用して指定できます:

C-x RET f coding RET

コーディングシステム coding を使用して、現在のバッファ (set-buffer-file-coding-system) 内のファイルを保存または再読み込みします。

C-x RET c coding RET

直後のコマンド (universal-coding-system-argument) にコーディングシステム coding を指定します。

C-x RET r coding RET

コーディングシステム coding (revert-buffer-with-coding-system) を使用して現在のファイルを再読み込みする。

M-x recode-region RET right RET wrong RET

符号化方式 wrong で復号された領域を、代わりに符号化方式 right を用いて復号する。

コマンド C-x RET f (set-buffer-file-coding-system) は、現在のバッファのファイルコーディングシステム(すなわち、ファイルの保存や復元時に使用するコーディングシステム)を設定します。どのコーディングシステムを使用するかは、ミニバッファで指定します。また、モードライン上のコーディングシステムインジケータを mouse-3 でクリックすることでも、このコマンドを実行できます(モードライン を参照)。

バッファ内のすべての文字を処理できないコーディングシステムを指定した場合、バッファを保存しようとすると、Emacsは問題のある文字について警告を表示し、別のコーディングシステムを選択するよう求めます(出力用コーディングシステムの選択を参照)。

また、このコマンドを使用して、現在のバッファをエンコードする際の改行変換(改行変換を参照)を指定することもできます。例えば、C-x RET f dos RET を指定すると、Emacs は現在のバッファのテキストを、DOS形式のキャリッジリターンに続くラインフィードの改行で保存します。

ファイルのコーディングシステムを指定するもう一つの方法は、ファイルを開いた際に行うことです。まず C-x RET c (universal-coding-system-argument) コマンドを使用します。このコマンドはミニバッファを使用してコーディングシステム名を読み取ります。ミニバッファを抜けると、指定されたコーディングシステムが直後のコマンドで使用されます。

なので、直後のコマンドが C-x C-f であれば、例えばその符号化方式でファイルを読み込みます(そして、後でファイルを保存する際の符号化方式を記録します)。あるいは、直後のコマンドが C-x C-w であれば、その符号化方式でファイルを書き込みます。このように C-x RET f ではなく保存時の符号化方式を指定する場合、バッファに符号化方式が扱えない文字が含まれていても警告は出ません。

指定されたコーディングシステムの影響を受けるその他のファイルコマンドには、C-x i や C-x C-v、および C-x C-f の別ウィンドウ版があります。C-x RET c は、M-x shell を含むサブプロセスを起動するコマンドにも影響します(Emacs からのシェルコマンドの実行 を参照)。直後のコマンドでコーディングシステムが使用されていない場合、C-x RET c は最終的に何の影響も及ぼしません。

変換なしでファイルにアクセスする簡単な方法は、M-x find-file-literallyコマンドを使用することです。ファイルへのアクセスを参照してください。

変数 buffer-file-coding-system のデフォルト値は、新規ファイルを作成する際に使用するコーディングシステムの選択を指定します。これは、新規ファイルを見つけた場合や、バッファを作成してそれをファイルに保存する場合に適用されます。言語環境を選択すると、通常、その言語環境に適したデフォルトのコーディングシステムがこの変数に設定されます。

誤った文字コード体系のファイルを開いた場合、C-x RET r (revert-buffer-with-coding-system) でこれを修正できます。これにより、指定した文字コード体系を用いて、現在のファイルが再度開かれます。

バッファに誤ったコーディングシステムでテキストが既に挿入されている場合、M-x recode-region を使用してそのデコードをやり直すことができます。これにより、適切なコーディングシステム、次いで実際に使用された誤ったコーディングシステムの入力が求められ、変換が行われます。まず該当領域を誤ったコーディングシステムでエンコードし、その後、適切なコーディングシステムを用いて再度デコードします。