2017-05-15 2 views
1

Ich versuche, eine Liste wie '(110 111 101 204 136 108) in eine Zeichenfolge wie "noël" zu konvertieren.UTF-8 Bytes zu string

Ich versuchte mit (mapcar (lambda (c) (decode-char 'unicode c)) '(110 111 101 204 136 108)), aber es ergab sich (110 111 101 204 136 108), das gleiche wie der Eingang. (Auch ich erkennen, dass es keine Möglichkeit, ein Unicode-Zeichen von einem Byte von UTF-8 zu entschlüsseln, so das ist definitiv die falsche Funktion.)

Antwort

2

Einige Optionen ...

(with-temp-buffer 
    (set-buffer-multibyte nil) 
    (apply #'insert '(110 111 101 204 136 108)) 
    (decode-coding-region (point-min) (point-max) 'utf-8 t)) 

oder:

(decode-coding-string 
(mapconcat #'byte-to-string '(110 111 101 204 136 108) "") 
'utf-8) 

oder mehr direkt:

(string-as-multibyte 
    (apply #'unibyte-string '(110 111 101 204 136 108))) 
+0

Diese alle große Arbeit, danke! –