2013-10-03 90 views
1

我正在修改从unicode Emacs(21.3或22)之前的旧Emacs/Gnus配置。在这种配置中,我使用了一些Unicode字符显示的Usenet线程:如何将十六进制转义字符转换为unicode字符?

(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 "\x4903c\x49020\x4904c\x490f9 ") ; "+-> " 
    (setq gnus-sum-thread-tree-vertical "\x49022 ") ; "| " 
    (setq gnus-sum-thread-tree-single-leaf "\x490b0\x49020\x490f9 ")) ; "\\-> " 

但现在使用Emacs 23.2.1我看空的正方形,而不是弯箭头。我怀疑它可能是一个字体集或与unibyte/multibyte有关的转义问题。

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

编辑:由于一个Emacs-22我能够在缓冲液中以插入这些字符并用C-ùC-X=找到他们的代码。

的对应关系是

(setq gnus-sum-thread-tree-root "\u2564 " 
     gnus-sum-thread-tree-false-root "\u2564 " 
     gnus-sum-thread-tree-leaf-with-other "\u251c\u2500\u252c\25b9 " 
     gnus-sum-thread-tree-vertical "\u2502 " 
     gnus-sum-thread-tree-single-leaf "\u2570\u2500\u25b9 ")) 

...但显示的是没有好的,因为它是在那些Unicode字符被选择的时间。它在另一个系统上,我想这个字体更好显示它们。

回答

1

我建议你开除一个旧的Emacs(Emacs的-22),使其显示这些字符串,所以你能看到那些漂亮的弧形箭头,然后复制&它们粘贴用鼠标(不需要使用\uNNN符号)。

+0

我重新安装了一个旧的Emacs-22,能够正确解码字符。正如JSON提到的,我目前的Emacs无法正确获取它们。 – Seki

1

理论上(decode-coding-string "\x490a4 " 'emacs-mule)应该做你想做的事情,但是它似乎没有认出那个字符,也许是因为它是从MULE的扩展到支持更多的Unicode字符。

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

+0

感谢您的提示,我经常使用Emacs来处理文本编码/转换,但我对内部知识不太了解。我确认,与Emacs-22相比,我的Emacs没有给出正确的结果,并且在古代编码中使用了转义字符。 – Seki

相关问题