emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Fixing Gnus, and string encoding question


From: Eric Abrahamsen
Subject: Re: Fixing Gnus, and string encoding question
Date: Sat, 06 Apr 2019 19:32:48 -0700
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

Noam Postavsky <address@hidden> writes:

> On Fri, 5 Apr 2019 at 22:22, Eric Abrahamsen <address@hidden> wrote:
>
>> >> "nnml:\343\203\206\343\202\271\343\203\210"
>
>> >> "nnml:ã\203\206ã\202¹ã\203\210"
>
>> > Are you maybe looking for decode-coding-string?
>
>> No, unfortunately -- that would make everything much easier. Eventually
>> the idea will be to decode the strings into plain utf-8-emacs, but for
>> now I'm stuck keeping them in this weird half-state. I literally need a
>> conversion between the two versions above.
>
> Oh, I missed which two string you meant. It seems that evaluating the
> 1st string with C-x C-e prints the second string in the *Messages*
> buffer (I initially thought they were the same string), but
> printing/inserting it doesn't work the same. The message code prints
> one character at a time, and indeed, inserting one character at a time
> in lisp works too:
>
> (let ((s "nnml:\343\203\206\343\202\271\343\203\210"))
>   (with-temp-buffer
>     (mapc #'insert s)
>     (buffer-string)))
>
> The following shorter expression also seem to work:
>
> (apply #'string (string-to-list "nnml:\343\203\206\343\202\271\343\203\210"))
>
> And apply #'unibyte-string goes back again:
>
> (let* ((s1 "nnml:\343\203\206\343\202\271\343\203\210")
>        (s2 (apply #'string (string-to-list s1))))
>   (apply #'unibyte-string (string-to-list s2)))
>
> I can't say I completely understand why all this works though.

Well that is weird and I would never have discovered it on my own --
thank you! I'm going to try to put together a patch using this now.

Thanks again,
Eric




reply via email to

[Prev in Thread] Current Thread [Next in Thread]