Utf8.FromUtf16 方法

定义

将 UTF-16 字符范围转换为 UTF-8 编码字节范围。

public static System.Buffers.OperationStatus FromUtf16 (ReadOnlySpan<char> source, Span<byte> destination, out int charsRead, out int bytesWritten, bool replaceInvalidSequences = true, bool isFinalBlock = true);
static member FromUtf16 : ReadOnlySpan<char> * Span<byte> * int * int * bool * bool -> System.Buffers.OperationStatus
Public Shared Function FromUtf16 (source As ReadOnlySpan(Of Char), destination As Span(Of Byte), ByRef charsRead As Integer, ByRef bytesWritten As Integer, Optional replaceInvalidSequences As Boolean = true, Optional isFinalBlock As Boolean = true) As OperationStatus

参数

source
ReadOnlySpan<Char>

UTF-16 编码只读字符范围。

destination
Span<Byte>

UTF-8 编码字节范围。

charsRead
Int32

方法返回时,从 source 中读取的字符数。

bytesWritten
Int32

方法返回时,写入 destination 的字符数。

replaceInvalidSequences
Boolean

若要将 source 中的无效 UTF-16 序列替换为 U+FFFD,则为 true;若要返回 InvalidData(如果在 source 中发现了无效字符),则为 false

isFinalBlock
Boolean

如果方法不应返回 NeedMoreData,则为 true;否则为 false

返回

OperationStatus

一个指示转换状态的值。

注解

此方法对应于 UTF8Encoding.GetBytes 方法,只不过它具有不同的调用约定、不同的错误处理机制和不同的性能特征。

如果为“replaceInvalidSequences”true,该方法会将任何格式不正确的子序列替换为 U+FFFD,source``destination并继续处理缓冲区的其余部分。 否则,如果该方法遇到任何格式错误的序列,该方法将 OperationStatus.InvalidData 返回。

如果该方法返回错误代码,则 out 参数指示成功转码的数据量,以及无法从这些值推断出格式错误的子序列的位置。

如果“replaceInvalidSequences”为 true,该方法永远不会返回 OperationStatus.InvalidData。 如果为“isFinalBlock” true,则该方法永远不会返回 OperationStatus.NeedMoreData

适用于