此类将 UTF-8 码单元(无符号 8 位整数的列表)转换为字符串。
示例
final utf8Decoder = utf8.decoder;
const encodedBytes = [
195, 142, 195, 177, 197, 163, 195, 169, 114, 195, 177, 195, 165, 197,
163, 195, 174, 195, 182, 195, 177, 195, 165, 196, 188, 195, 174, 197,
190, 195, 165, 197, 163, 195, 174, 225, 187, 157, 195, 177];
final decodedBytes = utf8Decoder.convert(encodedBytes);
print(decodedBytes); // Îñţérñåţîöñåļîžåţîờñ
如果编码的输入包含无效的 UTF-8 字节序列且 allowMalformed
设置为 false
(默认值),则会抛出 FormatException。
如果 allowMalformed
设置为 true
,则无效的字节序列将转换为一个或多个 Unicode 替换字符,U+FFFD ('�')。
将 allowMalformed
设置为 true 的示例
const utf8Decoder = Utf8Decoder(allowMalformed: true);
const encodedBytes = [0xFF];
final decodedBytes = utf8Decoder.convert(encodedBytes);
print(decodedBytes); // �
构造函数
- Utf8Decoder({bool allowMalformed = false})
- 实例化一个新的 Utf8Decoder。const
属性
- hashCode → int
- 此对象的哈希码。无设置器继承
- runtimeType → Type
- 对象的运行时类型的表示。无设置器继承
方法
-
bind(
Stream< List< stream) → Stream<int> >String> - 转换提供的
stream
。override -
cast<
RS, RT> () → Converter< RS, RT> - 提供了此流转换器的
Converter<RS, RT>
视图。继承 -
convert(
List< int> codeUnits, [int start = 0, int? end]) → String - 将 UTF-8 的
codeUnits
(无符号 8 位整数的列表)转换为相应的字符串。override -
fuse<
T> (Converter< String, T> next) → Converter<List< int> , T> - 融合
this
与other
。override -
noSuchMethod(
Invocation invocation) → dynamic - 当访问不存在的方法或属性时调用。继承
-
startChunkedConversion(
Sink< String> sink) → ByteConversionSink - 启动一个分块转换。override
-
toString(
) → String - 此对象的一个字符串表示形式。继承
运算符
-
operator ==(
Object other) → bool - 等于运算符。继承