So stellen Sie sicher, dass emacs UTF-8 über die Tastatur akzeptiert

2869
Brent.Longborough

Meine Freunde haben mich überredet, "Emacs" (etwa das 5. Mal in etwa 12 Jahren) erneut zu versuchen. Ich leide gerade etwas und brauche Hilfe bei emacs + utf-8.

Ich verwende die 23.3.1-Emacs-GUI unter Windows 7 mit meinem eigenen benutzerdefinierten Tastaturlayout (mit MS Keyboard Layout Creator erstellt). Das Layout enthält einen vollständigen Zeichensatz nach ISO-8859-1 (Latin-1) sowie einige zusätzliche Zeichen aus ISO-8859-9 (Latin-5, ğış usw. für Türkisch) und ŵ für Walisisch (weiß nicht, wo dieser steht lebt).

In meinen .emacs habe ich (blind) diese Zeilen hinzugefügt:

(Update: hier ist das neueste sich entwickelnde Chaos :)

;; 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) 

Wenn ich jetzt Zeichen von ISO Latin-1 über die Tastatur eingebe, werden diese problemlos akzeptiert, aber Zeichen außerhalb von Latin-1 werden in Latin-1 zu einem ungefähren Zeichen "übersetzt" . So wird beispielsweise Latin-5 "ğ" in ein einfaches "g" umgewandelt.

Ausschneiden und Einfügen funktionieren jedoch gut.

Kann mir jemand sagen, was ich falsch mache? Ich möchte alles, was ich mit emacs utf-8 mit BOM mache, machen .

6
Ist dies in der Emacs-GUI oder der Konsolenversion? grawity vor 12 Jahren 0
@ grawity: Die GUI. Ich habe die Frage aktualisiert. Brent.Longborough vor 12 Jahren 0
[Walisisch] (http://en.wikipedia.org/wiki/Welsh_language) wird in und um Wales gesprochen :) Der Hochstapler vor 12 Jahren 2
@OliverSalzburg: Ja, ich wohne dort. Ich weiß nicht, auf welcher ISO-8859-Unterseite, wenn überhaupt, das live ist ... Brent.Longborough vor 12 Jahren 2
Hilft http://stackoverflow.com/questions/10159693/how-can-i-make-sure-emacs-always-saves-edited-created-plain-text-as-utf8? N.N. vor 12 Jahren 0
@NN Hallo! Schön dich hier zu treffen! Nein, ich fürchte, das tut es nicht. Brent.Longborough vor 12 Jahren 0

3 Antworten auf die Frage

0
fstx

Mein Emacs sagt, dass die Set-Language-Umgebung eine Zeichenfolge braucht, kein Symbol.

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

Funktioniert die Verwendung von utf-16 für das Tastaturkodierungssystem?

Entschuldigung, `set-language-environment" UTF-8 "` hat keine Auswirkung, während `(set-keyboard-coding-system 'utf-16)` "Fehler: Ungeeignetes Kodierungssystem für Tastatur: utf-16" ergibt Brent.Longborough vor 12 Jahren 0
Ich würde vermuten, dass Sie Emacs patchen müssen, damit es funktioniert. Es gibt eine Windows-Nachricht namens WM_UNICHAR, die möglicherweise hilfreich ist. fstx vor 12 Jahren 1
0
terdon

In meiner Linux-Box kann ich griechisch, französisch (Akzente) und spanisch (ñ) auf Emacs mit den folgenden Zeilen in meinen .emacs eingeben:

;; Set encoding (prefer-coding-system 'utf-8) (setq coding-system-for-read 'utf-8) (setq coding-system-for-write 'utf-8) 
Probierte es einfach aus. Vielen Dank, dass Sie es versucht haben, es werden jedoch keine Zeichen wie ŵ und ş akzeptiert, die nicht dem Standard ISO-8859-1 entsprechen. Brent.Longborough vor 12 Jahren 0
Das ist seltsam, ich meine, Griechisch ist sicher nicht in ISO-8859-1 richtig? Sind Sie sicher, dass Sie eine Schriftart verwenden, die diese Zeichen unterstützt? terdon vor 12 Jahren 0
Oh ja. Ausschneiden und Einfügen funktioniert gut. Es ist nur die direkte Eingabe über die Tastatur, die nicht richtig funktioniert. Wie geben Sie Ihre griechischen Zeichen ein? Brent.Longborough vor 12 Jahren 0
0
jgomo3

Ich fügte am Anfang meiner hinzu init.el:

(require 'iso-transl) 

Und es akzeptiert meine spanischen Eingaben.

Danke für den Tipp. Leider funktionieren meine spanischen Eingaben bereits OK (wie alle ISO-9959-1). Wenn ich zu Türkisch wechsle (ı, İ, ş, Ş, ğ, Ğ), benimmt sich der Emacs mit oder ohne iso-transl Brent.Longborough vor 9 Jahren 0