Utf8StreamDecoder class
A UTF-8 stream decoder that handles incomplete byte sequences gracefully.
This decoder buffers incomplete UTF-8 byte sequences and only emits complete, valid UTF-8 strings. This prevents FormatException when multi-byte characters are split across network chunks.
Example usage:
final decoder = Utf8StreamDecoder();
await for (final chunk in byteStream) {
final decoded = decoder.decode(chunk);
if (decoded.isNotEmpty) {
print(decoded);
}
}
// Don't forget to flush any remaining bytes
final remaining = decoder.flush();
if (remaining.isNotEmpty) {
print(remaining);
}
Constructors
Properties
- bufferedByteCount → int
-
Get the number of buffered bytes.
no setter
- hasBufferedBytes → bool
-
Check if there are buffered bytes waiting for completion.
no setter
- hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
decode(
List< int> chunk) → String - Decode a chunk of bytes, returning only complete UTF-8 strings.
-
flush(
) → String - Flush any remaining buffered bytes.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
reset(
) → void - Clear the internal buffer.
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited