Aracılığıyla paylaş


Utf8.FromUtf16 Yöntem

Tanım

UTF-16 karakter aralığını UTF-8 kodlu bayt aralığına dönüştürür.

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

Parametreler

source
ReadOnlySpan<Char>

UTF-16 kodlamalı salt okunur karakter aralığı.

destination
Span<Byte>

UTF-8 kodlanmış bayt aralığı.

charsRead
Int32

yöntemi döndürdüğünde, 'den sourceokunan karakter sayısı.

bytesWritten
Int32

yöntemi döndürdüğünde, öğesine destinationyazılan bayt sayısıdır.

replaceInvalidSequences
Boolean

trueiçinde geçersiz UTF-16 dizilerini source U+FFFD ile değiştirmek; false içinde sourcegeçersiz karakterler bulunursa döndürmek InvalidData için.

isFinalBlock
Boolean

true yöntemi döndürülmemelidir NeedMoreData; aksi takdirde , false.

Döndürülenler

OperationStatus

Dönüştürmenin durumunu gösteren değer.

Açıklamalar

Bu yöntem UTF8Encoding.GetBytes yöntemine karşılık gelir, ancak farklı bir çağrı kuralı, farklı hata işleme mekanizmaları ve farklı performans özellikleri vardır.

'replaceInvalidSequences' ise true, yöntemi içindeki source tüm hatalı biçimlendirilmiş alt sorguları içinde U+FFFD destination ile değiştirir ve arabelleğin geri kalanını işlemeye devam eder. Aksi takdirde, yöntem herhangi bir kötü biçimlendirilmiş dizilerle karşılaşırsa döndürür OperationStatus.InvalidData .

Yöntem bir hata kodu döndürürse out parametreleri verilerin ne kadarının başarıyla kodlandığını gösterir ve hatalı biçimlendirilmiş alt sorgunun konumu bu değerlerden çıkarılabilir.

'replaceInvalidSequences' ise trueyöntemi hiçbir zaman döndürmez OperationStatus.InvalidData. 'isFinalBlock' ise trueyöntemi hiçbir zaman döndürür OperationStatus.NeedMoreData.

Şunlara uygulanır