2011-05-21 45 views
1

我有一个“文本”文件,有一些无效的字节序列。 Emacs将它们渲染为“\ 340 \ 360”,有没有办法让强大的文本处理器以十六进制渲染它们,例如:“\ co0a”?谢谢。emacs中unibyte文本缓冲区:以hexa编码?

编辑:我不会将自己的答案标记为已接受,但只是想说它的工作正常。

回答

1

发现了它,以防万一有人需要它太...(从here

(setq standard-display-table (make-display-table)) 
(let ((i ?\x80) hex hi low) 
    (while (<= i ?\xff) 
    (setq hex (format "%x" i)) 
    (setq hi (elt hex 0)) 
    (setq low (elt hex 1)) 
    (aset standard-display-table (unibyte-char-to-multibyte i) 
      (vector (make-glyph-code ?\\ 'escape-glyph) 
        (make-glyph-code ?x 'escape-glyph) 
        (make-glyph-code hi 'escape-glyph) 
        (make-glyph-code low 'escape-glyph))) 
    (setq i (+ i 1))))