I use Emacs 25.2.1 on a Windows XP Laptop with a Turkish keyboard.


On emacs -nw the following (non-ascii) letters print incorrectly:

Letters such as 'ö' and 'ü' which are also used in German and letters which are presumably Roman or Polish/Slavic such as 'ç' and those letters which are AFAIK only to be found in Turkish such as 'ğ' and 'ı' (i without dot)

When I open GUI Emacs there are no problems but when I open Emacs in tty mode (emacs -nw) when I press

   ş prints _
   ı prints 1 (as number)
   ğ performs the `undo` or `redo` actions


  • Other non-ascii letters common to other languages, as ç ü ö print all correctly.

  • Using the Windows' built-in cmd.exe or ConEmu or CMDer for emacs -nw makes no difference

  • Changing Windows' code page chcp.com 1254, 1256 or 857 doesn't help either.

  • If I chcp.com 65001 (Windows' UTF8 code) then all characters in Emacs print incorrectly.


When I copy and paste Turkish characters into emacs nw it prints them correctly. So the problem happens only when pressing the letters from the keyboard.


How to fix this problem?

  • I presume your terminal is not sending what you expect. What does C-h k or C-h l say about those keys?
    – phils
    Jun 24, 2020 at 13:04
  • Thank you for your interest. C-h k for the ğ keyboard button gives: C-_ runs the command undo (found in global-map), which is an interactive compiled Lisp function in ‘simple.el’. It is bound to C-_, <undo>, C-/, C-x u, <menu-bar> <edit> <undo>. When I do C-h l for the ğ keyboard button, it does and says at the mini buffer undo
    – Terry
    Jun 24, 2020 at 17:48
  • C-h k for the ı keyboard button gives (truncated a bit): 1 runs the command digit-argument (found in help-mode-map), which is an interactive compiled Lisp function in ‘simple.el’. It is bound to C-9, C-8, C-7, C-6, C-5, C-4, C-3, C-2, C-1, C-0, ESC 0..9, C-M-9, C-M-8, C-M-7, C-M-6, C-M-5, C-M-4, C-M-3, C-M-2, C-M-1, C-M-0, and many ordinary text characters.
    – Terry
    Jun 24, 2020 at 17:50
  • C-h kfor the ş keyboard button gives (truncated a bit): * _ runs the command self-insert-command (found in global-map), which is an interactive built-in function in ‘C source code’. It is bound to many ordinary text characters. (self-insert-command N)*
    – Terry
    Jun 24, 2020 at 17:51
  • Added some notes to the original post. FYI.
    – Terry
    Jun 25, 2020 at 15:43


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.