Next: Explicit Encoding, Previous: Default Coding Systems, Up: Coding Systems
変数coding-system-for-read
と/やcoding-system-for-write
を
束縛することで、特定の1つの操作向けのコーディングシステムを指定できます。
この変数が
nil
以外であると、 ファイルを読むときや同期プロセスからの入力に用いる コーディングシステムを指定する。これは非同期プロセスやネットワークストリームにも適用されるが、 異なった方法で適用される。 サブプロセスを開始したりネットワークストリームを開いたときの
coding-system-for-read
の値は、 そのサブプロセスやネットワークストリームの入力の復号化方法を指定する。 変更されない限り、そのサブプロセスやネットワークストリームに 対して使われ続ける。この変数の正しい使い方は、特定の入出力操作に対して
let
で束縛することである。 そのグローバルな値は通常はnil
であり、 グローバルにこれ以外の値を設定するべきではない。 この変数の正しい使い方の例をつぎに示す。;; 文字コード変換せずにファイルから読む ;; crlfが行末を表すと仮定する (let ((coding-system-for-write 'emacs-mule-dos)) (insert-file-contents filename))その値が
nil
以外であると、coding-system-for-read
は、file-coding-system-alist
、process-coding-system-alist
、network-coding-system-alist
、 を含めて入力に用いるコーディングシステムの 他のすべての指定方法に優先する。
これは
coding-system-for-read
と同様に働くが、 入力ではなく出力に適用される点が異なる。 ファイル、サブプロセス、ネットワーク接続へ書くことに影響する。
call-process-region
とstart-process
のように、 1つの操作で入力と出力を行うときには、coding-system-for-read
とcoding-system-for-write
の 両方が影響する。
この変数が
nil
以外であると、 コーディングシステムでなにが指定されていようと行末変換を行わない。 これは、Emacsの入出力とサブプロセスのすべての基本関数、 明示的な符号化/復号化関数(see Explicit Encoding)に適用される。