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

27

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

2个回答

52

在现代 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编码点。


14
在Emacs 23中,"describe-char"命令绑定在C-x =上。将光标(也称为“point”)移到字符上,然后按下C-u C-x =即可。 - Leonel

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))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接