2008-10-25 17 views
23

En XEmacs esto se hace llamando a la función char-to-ucs en un carácter. GNU Emacs no parece tener esta función. En GNU Emacs, los caracteres parecen ser enteros ordinarios. La ejecución de C-x = en un carácter latino revela que el punto de código Emacs es diferente del punto de código Unicode para el carácter correspondiente. ¿Cómo encuentro el punto de código Unicode del personaje en el punto en GNU Emacs?Encontrar el punto de código Unicode de un personaje en GNU Emacs

Respuesta

40

En un Emacs moderno, M-x describe-char le dirá sobre el personaje en el punto.
Un ejemplo:

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) 

Nota del U + 00A2 en la primera parte, lo que da el punto de código Unicode del carácter.

+11

describir-char se une a C-x = en Emacs 23. Coloque el cursor (también llamado "punto") a través de un char e ir C-u-C x = – Leonel

4

Gracias por las respuestas rápidas. Miré el código fuente de describe-char, y encontré el siguiente fragmento que resuelve mi problema. Lo probé tanto en XEmacs 21.4.13 Mule como en GNU Emacs 22.1.1 y parece funcionar.

(or (get-char-property (point) 'untranslated-utf-8) 
    (encode-char (char-after) 'ucs)) 
Cuestiones relacionadas