共用方式為


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 中發現無效的字元,true 則以 U+FFFD 取代 source 中無效的 UTF-16 序列,false 則傳回 InvalidData

isFinalBlock
Boolean

如果此方法不應傳回 NeedMoreData,則為 true;否則為 false

傳回

OperationStatus

值,指出此轉換的狀態。

備註

這個方法會對應至 UTF8Encoding.GetBytes 方法,不同之處在于它具有不同的呼叫慣例、不同的錯誤處理機制,以及不同的效能特性。

如果 'replaceInvalidSequences' 為 true ,則 方法會將 中任何格式不正確的子序列取代為 中的 source destination U+FFFD,並繼續處理緩衝區的其餘部分。 否則,如果方法遇到任何格式不正確的序列,則傳回 OperationStatus.InvalidData

如果方法傳回錯誤碼,out 參數會指出已成功轉碼多少資料,而且可以從這些值推斷錯誤格式子序列的位置。

如果 'replaceInvalidSequences' 為 true ,則方法永遠不會傳 OperationStatus.InvalidData 回 。 如果 'isFinalBlock' 為 true ,則方法永遠不會傳 OperationStatus.NeedMoreData 回 。

適用於