Нахождение кодовой точки Unicode символа в GNU Emacs - PullRequest
24 голосов
/ 25 октября 2008

В XEmacs это делается путем вызова функции char-to-ucs для символа. В GNU Emacs, похоже, нет этой функции. В GNU Emacs символы кажутся обычными целыми числами. Запуск C-x = на латинском символе показывает, что кодовая точка Emacs отличается от кодовой точки Unicode для соответствующего символа. Как найти кодовую точку Unicode символа в точке в GNU Emacs?

Ответы [ 2 ]

45 голосов
/ 25 октября 2008

В современном Emacs M-x description-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 символа.

4 голосов
/ 25 октября 2008

Спасибо за быстрые ответы. Я посмотрел исходный код для description-char и нашел следующий фрагмент, который решает мою проблему. Я протестировал его в XEmacs 21.4.13 Mule и GNU Emacs 22.1.1, и, похоже, он работает.

(or (get-char-property (point) 'untranslated-utf-8)
    (encode-char (char-after) 'ucs))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...