Base64.DecodeFromUtf8 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将表示为 base 64 的 UTF-8 编码的文本范围解码为二进制数据。 如果输入不是 4 的倍数,则它将尽可能多地解码,直到最接近 4 的倍数。
public static System.Buffers.OperationStatus DecodeFromUtf8 (ReadOnlySpan<byte> utf8, Span<byte> bytes, out int bytesConsumed, out int bytesWritten, bool isFinalBlock = true);
static member DecodeFromUtf8 : ReadOnlySpan<byte> * Span<byte> * int * int * bool -> System.Buffers.OperationStatus
Public Shared Function DecodeFromUtf8 (utf8 As ReadOnlySpan(Of Byte), bytes As Span(Of Byte), ByRef bytesConsumed As Integer, ByRef bytesWritten As Integer, Optional isFinalBlock As Boolean = true) As OperationStatus
参数
- utf8
- ReadOnlySpan<Byte>
包含需要解码的以 base 64 表示的 UTF-8 编码文本的输入范围。
- bytesConsumed
- Int32
此方法返回时,包含操作期间使用的输入字节数。 如有必要,这可用于划分输入以供后续调用。
- bytesWritten
- Int32
此方法返回时,包含写入输出范围的字节数。 如有必要,这可用于划分输出以供后续调用。
- isFinalBlock
- Boolean
true
(默认) 指示输入范围包含要解码的整个数据。 false
指示输入范围包含部分数据以及更多要关注的数据。
返回
用于指示解码操作状态的枚举值之一。
注解
返回值可以如下所示:
- OperationStatus.Done:整个输入范围的处理成功。
- OperationStatus.DestinationTooSmall:输出范围中没有足够的空间来写入解码的输入。
- OperationStatus.NeedMoreData:
isFinalBlock
为false
,并且输入不是 4 的倍数。 否则,部分输入被视为 InvalidData。 - OperationStatus.InvalidData:输入包含超出预期基 64 范围的字节,或不完整 (,即,不是 4) 的倍数,并且
isFinalBlock
为true
。 在 .NET 7 及更早版本中,此值还可以指示输入具有无效或两个以上的填充字符。