When a rune stands over the buffer boundary, invalid UTF-8 bytes were sent to the client. Now the logic checks if the tail of the buffer can be decoded as a valid rune. When it's an invalid byte sequence, the logic keeps it in the buffer and send it in the next loop with the following byte sequence.
4.0 KiB
4.0 KiB