在GNU Emacs中查找字符的Unicode代码点

时间:2008-10-25 08:25:23

标签: emacs unicode

在XEmacs中,这是通过在角色上调用char-to-ucs函数来完成的。 GNU Emacs似乎没有这个功能。在GNU Emacs中,字符似乎是普通的整数。在拉丁字符上运行C-x =表明Emacs代码点与相应字符的Unicode代码点不同。如何在GNU Emacs中找到该字符的Unicode代码点?

2 个答案:

答案 0 :(得分:45)

在现代的Emacs中,M-x describe-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代码点。

答案 1 :(得分:4)

感谢您的快速解答。我查看了describe-char的源代码,找到了解决我问题的以下代码片段。我在XEmacs 21.4.13 Mule和GNU Emacs 22.1.1中测试了它,它似乎有效。

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