-@vindex locale-coding-system
-@cindex decoding non-@acronym{ASCII} keyboard input on X
- The variable @code{locale-coding-system} specifies a coding system
-to use when encoding and decoding system strings such as system error
-messages and @code{format-time-string} formats and time stamps. That
-coding system is also used for decoding non-@acronym{ASCII} keyboard input on X
-Window systems. You should choose a coding system that is compatible
-with the underlying system's text representation, which is normally
-specified by one of the environment variables @env{LC_ALL},
-@env{LC_CTYPE}, and @env{LANG}. (The first one, in the order
-specified above, whose value is nonempty is the one that determines
-the text representation.)
+@node Terminal Coding
+@section Coding Systems for Terminal I/O
+
+@table @kbd
+@item C-x @key{RET} k @var{coding} @key{RET}
+Use coding system @var{coding} for keyboard input.
+
+@item C-x @key{RET} t @var{coding} @key{RET}
+Use coding system @var{coding} for terminal output.
+@end table
+
+@kindex C-x RET t
+@findex set-terminal-coding-system
+ The command @kbd{C-x @key{RET} t} (@code{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 or
+your locale specification (@pxref{Language Environments}).
+
+@kindex C-x RET k
+@findex set-keyboard-coding-system
+@vindex keyboard-coding-system
+ The command @kbd{C-x @key{RET} k} (@code{set-keyboard-coding-system})
+or the variable @code{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-@acronym{ASCII}
+graphic characters---for example, some terminals designed for ISO
+Latin-1 or subsets of it.
+
+ By default, keyboard input is translated based on your system locale
+setting. If your terminal does not really support the encoding
+implied by your locale (for example, if you find it inserts a
+non-@acronym{ASCII} character if you type @kbd{M-i}), you will need to set
+@code{keyboard-coding-system} to @code{nil} to turn off encoding.
+You can do this by putting
+
+@lisp
+(set-keyboard-coding-system nil)
+@end lisp
+
+@noindent
+in your @file{~/.emacs} file.
+
+ 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 @acronym{ASCII}
+printing characters. Coding systems typically translate sequences of
+non-graphic characters.