小编Ken*_*Ken的帖子

如何在Common Lisp中将字节数组转换为字符串?

我正在调用一个有趣的API来返回一个字节数组,但我想要一个文本流.有没有一种从字节数组中获取文本流的简单方法?现在我只是聚在一起:

(defun bytearray-to-string (bytes)
  (let ((str (make-string (length bytes))))
    (loop for byte across bytes
       for i from 0
       do (setf (aref str i) (code-char byte)))
    str))
Run Code Online (Sandbox Code Playgroud)

然后用in-input-from-string包装结果,但这不是最好的方法.(另外,它非常低效.)

在这种情况下,我知道它总是ASCII,因此将其解释为ASCII或UTF-8就可以了.我正在使用支持Unicode的SBCL,但我更喜欢便携式(甚至是纯ASCII)解决方案,而不是特定于SBCL-Unicode的解决方案.

sbcl common-lisp

21
推荐指数
4
解决办法
1万
查看次数

标签 统计

common-lisp ×1

sbcl ×1