В XEmacs это выполняется путем вызова функции char -to-ucs на символ. У GNU Emacs нет такой функции. В GNU Emacs символы кажутся обычными целыми числами. Запуск C-x = на латинском символе показывает, что код Emacs отличается от кодового пункта Unicode для соответствующего символа. Как найти код Unicode символа в точке в GNU Emacs?
Поиск кода Unicode символа в GNU Emacs
Ответ 1
В современном Emacs M-x описать char расскажет вам о персонаже в точке.
Пример:
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)
Обратите внимание на U + 00A2 в первой части, которая дает код Unicode символа.
Ответ 2
Спасибо за быстрые ответы. Я просмотрел исходный код для описания char и нашел следующий фрагмент, который решает мою проблему. Я тестировал его как в XEmacs 21.4.13 Mule, так и в GNU Emacs 22.1.1, и, похоже, он работает.
(or (get-char-property (point) 'untranslated-utf-8)
(encode-char (char-after) 'ucs))