Subject: bug#27270: display-raw-bytes-as-hex generates ambiguous output for Emacs strings

From: Eli Zaretskii <[email-masked]>
Date: Thu, 08 Jun 2017 19:11:19 +0300

> Cc: Eli Zaretskii <[email-masked]>, [email-masked],
>  [email-masked]
> From: Paul Eggert <[email-masked]>
> Date: Thu, 8 Jun 2017 08:56:31 -0700
> 
> (setq display-raw-bytes-as-hex t) C-j
> (format "%c%c" ?\u0090 ?5) C-j
> 
> Emacs displays this:
> 
> "\x905"
> 
> which is the wrong string visually.

How is that different from "\2205" you get under the default settings?

> The string should be 
> displayed unambiguously, either like this:
> 
> "\x80\ 5"
> 
> or via some other means.

We do use "some other means": the raw byte has a different face.  But
if you evaluate the above in *scratch*, you won't see that because of
font-lock.  Turn off font-lock-mode, and you will clearly see where
the raw byte ends and "normal" text begins.