Stefan Monnier writes: >> The interface does not return bytes, it returns a (half-)decoded lisp >> form. > > My understanding is that it returns a structure whose leaves are > all byte-strings because. String values are returned as multibyte, e.g.: (multibyte-string-p (cdr (assq 'severity (car (debbugs-get-status 22285))))) => t because parsing happens in a temporary buffer where enable-multibyte-characters is set, and the string value is returned unchanged. > In this sense, they're all "undecoded". And the meaning of those > byte-strings is not specified by the generic format, so the generic > parser can't know if or how to decode them. This is true for base64Binary values. I'd like to change the base64Binary behavior back, but we can document this nuance of the API. Also, on the encoding side I think we should force the caller to provide unibyte strings for base64Binary values. Is the attached patch OK for master and emacs-25? Thomas