如何将十六进制转义字符转换为 unicode 字符



我正在修改一个旧的Emacs/Gnus配置,该配置可以追溯到Unicode Emacs(21.3或22)之前。在此配置中,我使用一些 unicode 字符来显示 usenet 线程:

  (setq gnus-sum-thread-tree-root "x490a4 ")     ; "> "
  (setq gnus-sum-thread-tree-false-root "x490a4 ") ; "> "
  (setq gnus-sum-thread-tree-indent " ") ; "  "
  (setq gnus-sum-thread-tree-single-indent "") ; ""
  (setq gnus-sum-thread-tree-leaf-with-other "x4903cx49020x4904cx490f9 ") ; "+-> "
  (setq gnus-sum-thread-tree-vertical "x49022 ") ; "| "
  (setq gnus-sum-thread-tree-single-leaf "x490b0x49020x490f9 "))   ; "\-> "

但是现在在 Emacs 23.2.1 中,我看到的是空的方块而不是弯曲的箭头。我怀疑它可能是字体集或与单字节/多字节相关的转义问题。

要排除转义问题或解决它,如何检索 unicode 字符以使用转义u1234而不是转义x12345?谢谢。

编辑:多亏了Emacs-22,我能够将这些字符插入缓冲区中,并使用C-uC-x=找到它们的代码。

对应的是

(setq gnus-sum-thread-tree-root "u2564 "
        gnus-sum-thread-tree-false-root "u2564 "
        gnus-sum-thread-tree-leaf-with-other "u251cu2500u252c25b9 "
        gnus-sum-thread-tree-vertical "u2502 "
        gnus-sum-thread-tree-single-leaf "u2570u2500u25b9 "))

。但是显示并不像选择这些Unicode字符时那么好。它在另一个系统上,我想字体更适合显示它们。

我建议你触发一个较旧的Emacs(Emacs-22),让它显示这些字符串,这样你就可以看到那些漂亮的弯曲箭头,然后用鼠标复制和粘贴它们(不需要使用uNNN符号)。

理论上(decode-coding-string "x490a4 " 'emacs-mule)应该做你想做的事,但它似乎无法识别该字符,也许是因为它是从 MULE 的扩展到支持更多的 Unicode 字符。

我认为最简单的解决方案是直观地找到您想要的箭头,并将这些代码替换为它们的 Unicode 代码点。 请参阅维基百科中的箭头(Unicode块)以获取潜在候选者的列表。

最新更新