Utf8.FromUtf16 Metod

Definition

Konverterar ett UTF-16-teckensintervall till ett UTF-8-kodat byteintervall.

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

Parametrar

source
ReadOnlySpan<Char>

Ett UTF-16-kodat skrivskyddat teckenintervall.

destination
Span<Byte>

Ett UTF-8-kodat byteintervall.

charsRead
Int32

När metoden returnerar läse antalet tecken från source.

bytesWritten
Int32

När metoden returnerar, antalet byte som skrivits till destination.

replaceInvalidSequences
Boolean

true för att ersätta ogiltiga UTF-16-sekvenser i source med U+FFFD; false för att returnera InvalidData om ogiltiga tecken hittas i source.

isFinalBlock
Boolean

trueom metoden inte ska returnera NeedMoreData; annars . false

Returer

Ett värde som anger konverteringens status.

Kommentarer

Den här metoden motsvarar metoden UTF8Encoding.GetBytes , förutom att den har en annan anropskonvention, olika mekanismer för felhantering och olika prestandaegenskaper.

Om "replaceInvalidSequences" är trueersätter metoden eventuella illa formade underfrågor i med U+FFFD i sourcedestination och fortsätter att bearbeta resten av bufferten. I annat fall returnerar OperationStatus.InvalidData metoden om den stöter på felformade sekvenser.

Om metoden returnerar en felkod anger utparametrarna hur mycket av data som har omkodades och platsen för den illa formade underfrågan kan härledas från dessa värden.

Om "replaceInvalidSequences" är truereturnerar OperationStatus.InvalidDatametoden aldrig . Om "isFinalBlock" är truereturnerar OperationStatus.NeedMoreDatametoden aldrig .

Gäller för