以下のコードを使用してusocketストリームから読み取っていたとき:
(let ((stream (socket-stream sk)) line)
(loop for line = (read-line stream)
while line do (format t line)))
read-line が ASCII 以外の文字に遭遇すると、例外がスローされます。
decoding error on stream
#<SB-SYS:FD-STREAM
for "socket 118.229.141.195:52946, peer: 119.75.217.109..."
{BCA02F1}>
(:EXTERNAL-FORMAT :UTF-8):
the octet sequence (176) cannot be decoded.
[Condition of type SB-INT:STREAM-DECODING-ERROR]
read-line も read-byte も機能しないので、trivial-utf-8 を使用して read-utf-8-string を使用して utf-8 文字列を読み取ろうとしましたが、バイナリ ストリームのみを受け入れ、socket-stream は受け入れないようです。バイナリストリームを作成するので、非ASCII文字を持つソケットストリームから読み取る方法を混乱させましたか?