Udostępnij za pośrednictwem


Utf8.FromUtf16 Metoda

Definicja

Konwertuje zakres znaków UTF-16 na zakres bajtów zakodowany w formacie 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

Parametry

source
ReadOnlySpan<Char>

Zakres znaków tylko do odczytu zakodowany w formacie UTF-16.

destination
Span<Byte>

Zakres bajtów zakodowany w formacie UTF-8.

charsRead
Int32

Gdy metoda zwróci wartość , liczba znaków odczytanych z sourcemetody .

bytesWritten
Int32

Gdy metoda zwróci wartość , liczba bajtów zapisanych w obiekcie destination.

replaceInvalidSequences
Boolean

true aby zastąpić nieprawidłowe sekwencje UTF-16 w elemencie source U+FFFD; false aby powrócić InvalidData , jeśli w elemencie sourceznajdują się nieprawidłowe znaki.

isFinalBlock
Boolean

true jeśli metoda nie powinna zwracać NeedMoreDatawartości ; w przeciwnym razie false.

Zwraca

OperationStatus

Wartość wskazująca stan konwersji.

Uwagi

Ta metoda odpowiada metodzie UTF8Encoding.GetBytes , z tą różnicą, że ma inną konwencję wywoływania, różne mechanizmy obsługi błędów i różne cechy wydajności.

Jeśli parametr "replaceInvalidSequences" to true, metoda zastępuje wszystkie nieprawidłowo sformułowane podsekwencje w elemencie U+FFFD w source destination i kontynuuje przetwarzanie pozostałej części buforu. W przeciwnym razie metoda zwraca OperationStatus.InvalidData wartość , jeśli napotka jakiekolwiek źle sformułowane sekwencje.

Jeśli metoda zwraca kod błędu, parametry out wskazują, ile danych zostało pomyślnie transkodowanych, a lokalizację nieprawidłowej podsekwencjonowania można wywieść z tych wartości.

Jeśli parametr "replaceInvalidSequences" ma truewartość , metoda nigdy nie zwraca wartości OperationStatus.InvalidData. Jeśli parametr "isFinalBlock" to true, metoda nigdy nie zwraca wartości OperationStatus.NeedMoreData.

Dotyczy