如何从普通 lisp 中的八位字节向量中解码单个字符?
我想要这样的东西:
(decode-character vector :start i :encoding :utf-8)
或更具体地说:
(decode-character #(195 164 195 173 99 195 176) :start 0)
=> #\LATIN_SMALL_LETTER_A_WITH_DIAERESIS
这将返回 vector
中从位置 i
开始的 UTF-8 编码字符。
我不知道如何使用 babel 或 flexi-streams 来做到这一点。
最佳答案
(defun decode-character (vector &rest args)
(char (apply #'babel:octets-to-string
(coerce vector '(vector (unsigned-byte 8))) args)
0))
关于string - 从 lisp 中的八位字节解码单个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33188958/