Udostępnij za pośrednictwem


Utf8.ToUtf16 Metoda

Definicja

Konwertuje zakodowany w formacie UTF-8 zakres bajtów tylko do odczytu na zakres znaków zakodowanych w formacie UTF-16.

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

Parametry

source
ReadOnlySpan<Byte>

Zakodowany w formacie UTF-8 zakres bajtów tylko do odczytu.

destination
Span<Char>

Zakres znaków zakodowanych w formacie UTF-16.

bytesRead
Int32

Gdy metoda zwraca wartość , liczba bajtów odczytanych z sourcemetody .

charsWritten
Int32

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

replaceInvalidSequences
Boolean

true aby zastąpić nieprawidłowe sekwencje UTF-8 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

Wartość wskazująca stan konwersji.

Uwagi

Ta metoda odpowiada metodzie UTF8Encoding.GetChars , 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 sourcedestination 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