(emacs.info) Specify Coding

Info Catalog (emacs.info) Recognize Coding (emacs.info) International (emacs.info) Fontsets
 
 Specifying a Coding System
 ==========================
 
    In cases where Emacs does not automatically choose the right coding
 system, you can use these commands to specify one:
 
 `C-x <RET> f CODING <RET>'
      Use coding system CODING for the visited file in the current
      buffer.
 
 `C-x <RET> c CODING <RET>'
      Specify coding system CODING for the immediately following command.
 
 `C-x <RET> k CODING <RET>'
      Use coding system CODING for keyboard input.
 
 `C-x <RET> t CODING <RET>'
      Use coding system CODING for terminal output.
 
 `C-x <RET> p INPUT-CODING <RET> OUTPUT-CODING <RET>'
      Use coding systems INPUT-CODING and OUTPUT-CODING for subprocess
      input and output in the current buffer.
 
 `C-x <RET> x CODING <RET>'
      Use coding system CODING for transferring selections to and from
      other programs through the window system.
 
 `C-x <RET> X CODING <RET>'
      Use coding system CODING for transferring _one_ selection--the
      next one--to or from the window system.
 
    The command `C-x <RET> f' (`set-buffer-file-coding-system')
 specifies the file coding system for the current buffer--in other
 words, which coding system to use when saving or rereading the visited
 file.  You specify which coding system using the minibuffer.  Since this
 command applies to a file you have already visited, it affects only the
 way the file is saved.
 
    Another way to specify the coding system for a file is when you visit
 the file.  First use the command `C-x <RET> c'
 (`universal-coding-system-argument'); this command uses the minibuffer
 to read a coding system name.  After you exit the minibuffer, the
 specified coding system is used for _the immediately following command_.
 
    So if the immediately following command is `C-x C-f', for example,
 it reads the file using that coding system (and records the coding
 system for when the file is saved).  Or if the immediately following
 command is `C-x C-w', it writes the file using that coding system.
 Other file commands affected by a specified coding system include `C-x
 C-i' and `C-x C-v', as well as the other-window variants of `C-x C-f'.
 
    `C-x <RET> c' also affects commands that start subprocesses,
 including `M-x shell' ( Shell).
 
    However, if the immediately following command does not use the coding
 system, then `C-x <RET> c' ultimately has no effect.
 
    An easy way to visit a file with no conversion is with the `M-x
 find-file-literally' command.   Visiting.
 
    The variable `default-buffer-file-coding-system' specifies the
 choice of coding system to use when you create a new file.  It applies
 when you find a new file, and when you create a buffer and then save it
 in a file.  Selecting a language environment typically sets this
 variable to a good choice of default coding system for that language
 environment.
 
    The command `C-x <RET> t' (`set-terminal-coding-system') specifies
 the coding system for terminal output.  If you specify a character code
 for terminal output, all characters output to the terminal are
 translated into that coding system.
 
    This feature is useful for certain character-only terminals built to
 support specific languages or character sets--for example, European
 terminals that support one of the ISO Latin character sets.  You need to
 specify the terminal coding system when using multibyte text, so that
 Emacs knows which characters the terminal can actually handle.
 
    By default, output to the terminal is not translated at all, unless
 Emacs can deduce the proper coding system from your terminal type.
 
    The command `C-x <RET> k' (`set-keyboard-coding-system') specifies
 the coding system for keyboard input.  Character-code translation of
 keyboard input is useful for terminals with keys that send non-ASCII
 graphic characters--for example, some terminals designed for ISO
 Latin-1 or subsets of it.
 
    By default, keyboard input is not translated at all.
 
    There is a similarity between using a coding system translation for
 keyboard input, and using an input method: both define sequences of
 keyboard input that translate into single characters.  However, input
 methods are designed to be convenient for interactive use by humans, and
 the sequences that are translated are typically sequences of ASCII
 printing characters.  Coding systems typically translate sequences of
 non-graphic characters.
 
    The command `C-x <RET> x' (`set-selection-coding-system') specifies
 the coding system for sending selected text to the window system, and
 for receiving the text of selections made in other applications.  This
 command applies to all subsequent selections, until you override it by
 using the command again.  The command `C-x <RET> X'
 (`set-next-selection-coding-system') specifies the coding system for
 the next selection made in Emacs or read by Emacs.
 
    The command `C-x <RET> p' (`set-buffer-process-coding-system')
 specifies the coding system for input and output to a subprocess.  This
 command applies to the current buffer; normally, each subprocess has its
 own buffer, and thus you can use this command to specify translation to
 and from a particular subprocess by giving the command in the
 corresponding buffer.
 
    By default, process input and output are not translated at all.
 
    The variable `file-name-coding-system' specifies a coding system to
 use for encoding file names.  If you set the variable to a coding
 system name (as a Lisp symbol or a string), Emacs encodes file names
 using that coding system for all file operations.  This makes it
 possible to use non-ASCII characters in file names--or, at least, those
 non-ASCII characters which the specified coding system can encode.
 
    If `file-name-coding-system' is `nil', Emacs uses a default coding
 system determined by the selected language environment.  In the default
 language environment, any non-ASCII characters in file names are not
 encoded specially; they appear in the file system using the internal
 Emacs representation.
 
    *Warning:* if you change `file-name-coding-system' (or the language
 environment) in the middle of an Emacs session, problems can result if
 you have already visited files whose names were encoded using the
 earlier coding system and cannot be encoded (or are encoded
 differently) under the new coding system.  If you try to save one of
 these buffers under the visited file name, saving may use the wrong file
 name, or it may get an error.  If such a problem happens, use `C-x C-w'
 to specify a new file name for that buffer.
 
Info Catalog (emacs.info) Recognize Coding (emacs.info) International (emacs.info) Fontsets
automatically generated by info2html