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