2008-10-25 7 views
23

In XEmacs geschieht dies durch den Aufruf der Funktion char-to-ucs auf einem Zeichen. GNU Emacs scheint diese Funktion nicht zu haben. In GNU Emacs scheinen Zeichen gewöhnliche Ganzzahlen zu sein. Das Ausführen von C-x = bei einem lateinischen Zeichen zeigt, dass sich der Emacs-Codepunkt vom Unicode-Codepunkt für das entsprechende Zeichen unterscheidet. Wie finde ich den Unicode-Codepunkt des Zeichens am Punkt in GNU Emacs?Den Unicode Codepoint eines Zeichens in GNU Emacs finden

Antwort

40

In einem modernen Emacs wird M-x describe-char über den Charakter am Punkt erzählen.
Ein Beispiel:

character: ¢ (2210, #o4242, #x8a2, U+00A2) 
    charset: latin-iso8859-1 
     (Right-Hand Part of Latin Alphabet 1 (ISO/IEC 8859-1): ISO-IR-100.) 
code point: #x22 
    syntax: w which means: word 
    category: l:Latin 
buffer code: #x81 #xA2 
    file code: #xC2 #xA2 (encoded by coding system utf-8) 
    display: by this font (glyph code) 
    -apple-monaco-medium-r-normal--12-120-72-72-m-120-mac-roman (#xA2) 

Notiere die U + 00A2 in dem ersten Teil, der das Unicode-Codepunkt des Zeichens gibt.

+11

describe-char ist gebunden an C-x = in Emacs 23. Setzen Sie den Cursor (auch als "Punkt") über einen char und gehen C-u C-x = – Leonel

4

Danke für die schnellen Antworten. Ich habe mir den Quellcode für describe-char angesehen und das folgende Snippet gefunden, das mein Problem löst. Ich habe es in XEmacs 21.4.13 Mule und GNU Emacs 22.1.1 getestet und es scheint zu funktionieren.

(or (get-char-property (point) 'untranslated-utf-8) 
    (encode-char (char-after) 'ucs)) 
Verwandte Themen