6

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.

4 Answers4

1

This seems like it was a problem of codepage (and hence specific to Windows) because Emacs internally used old Windows APIs that could only return chars that belong to your codepage (hence Windows turned ğ into a plain g before passing it to Emacs).

AFAIK this is not the case any more in newer Emacsen (we now use the newer APIs which use some kind of Unicode, probably UTF-16).

Stefan
  • 1,399
0

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?

fstx
  • 1,040
0

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)
terdon
  • 54,564
0

I added at the begining of my init.el:

(require 'iso-transl)

And it accepts my spanish inputs.

jgomo3
  • 580