在XEmacs中,通过调用char-to-ucs函数来完成这个操作。GNU Emacs似乎没有这个函数。在GNU Emacs中,字符看起来就像是普通的整数。运行C-x =命令可以查看拉丁字符的Emacs代码点,并发现它与相应字符的Unicode代码点不同。如何在GNU Emacs中找到点处字符的Unicode代码点?
在现代 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编码点。
感谢快速回复。我查看了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))