Когда я читал из потока 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 для чтения строки utf-8
используя read-utf-8-string, но он принимает только двоичный поток, кажется, что сокет-поток не создает двоичный поток, поэтому я был озадачен, как читать из потока сокетов, который имеет символы, отличные от ascii?