Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

My friends have persuaded me to "try again" (about the 5th time in about 12 years) with emacs. I'm currently suffering a little, and need help with emacs + utf-8.

I'm running the 23.3.1 emacs gui on Windows 7 with my own custom keyboard layout (built with MS Keyboard Layout Creator). The layout has a full ISO-8859-1 (Latin-1) character set, plus some additional characters from ISO-8859-9 (Latin-5, ğış etc for Turkish) and ŵ for Welsh (don't know where that one lives).

In my .emacs, I have (blindly) added these lines:

(Update: here's the latest evolving mess:)

;; set up unicode
;; keyboard / input method settings
(setq locale-coding-system 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-selection-coding-system 'utf-8)
(set-language-environment 'UTF-8) ; prefer utf-8 for language settings
(set-default-coding-systems 'utf-8)
(setq default-buffer-file-coding-system 'utf-8)
(setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING))
(prefer-coding-system       'utf-8)
(setq buffer-file-coding-system 'utf-8-unix)
(setq default-file-name-coding-system 'utf-8-unix)
(setq default-keyboard-coding-system 'utf-8-unix)
(setq default-process-coding-system '(utf-8-unix . utf-8-unix))
(setq default-sendmail-coding-system 'utf-8-unix)
(setq default-terminal-coding-system 'utf-8-unix)

Now, when I enter characters from ISO Latin-1 from the keyboard, they are accepted without problems, but characters from outside Latin-1 are "translated" to an approximate character in Latin-1. Thus, for example, Latin-5 "ğ" gets converted to a plain "g".

Cutting and pasting, however, work fine.

Can anyone tell me what I'm doing wrong? I should like to make everything I do with emacs utf-8 with BOM.

share|improve this question
Is this in Emacs GUI, or the console version? – grawity Apr 8 '12 at 20:41
@grawity: The GUI. I've updated the question. – Brent.Longborough Apr 8 '12 at 20:43
Welsh is spoken in and around Wales :) – Oliver Salzburg Apr 10 '12 at 16:55
@OliverSalzburg: Yes, I live there; I don't know on which ISO-8859 subpage, if any, the ŵs live... – Brent.Longborough Apr 10 '12 at 18:18
Does… help? – N.N. Apr 15 '12 at 9:11

My emacs says that set-language-environment takes a string, not a symbol.

(set-language-environment "UTF-8")

Does using utf-16 for the keyboard encoding system work?

share|improve this answer
Sorry, set-language-environment "UTF-8" has no effect, while (set-keyboard-coding-system 'utf-16) gives "error: Unsuitable coding system for keyboard: utf-16" – Brent.Longborough Apr 25 '12 at 9:57
I would guess that you would need to patch emacs to get it working then. There is a windows message called WM_UNICHAR that might help. – fstx Apr 27 '12 at 8:38

on my linux box, I can type greek, french (accents) and spanish (ñ) on emacs with just these lines in my .emacs:

;; Set encoding
(prefer-coding-system 'utf-8)
(setq coding-system-for-read 'utf-8)
(setq coding-system-for-write 'utf-8)
share|improve this answer
Just tried it. Thank you for trying, but it still doesn't accept non-ISO-8859-1 characters like ŵ and ş. – Brent.Longborough Aug 16 '12 at 18:08
That is strange, I mean greek is certainly not in ISO-8859-1 right? Are you sure you are using a font that supports these characters? – terdon Aug 16 '12 at 18:23
Oh, yes. Cut-and-paste works fine; it's just the direct entry from the keyboard that doesn't work correctly. How do you enter your Greek characters? – Brent.Longborough Aug 16 '12 at 22:20

I added at the begining of my init.el:

(require 'iso-transl)

And it accepts my spanish inputs.

share|improve this answer
Thanks for the tip. Unfortunately, my spanish inputs are already working OK (as is all of ISO-9959-1). When I switch to Turkish (ı, İ, ş, Ş, ğ, Ğ) that emacs misbehaves, with or without iso-transl – Brent.Longborough May 16 '15 at 18:26

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .