我正在调用一个有趣的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的解决方案.