Rune.DecodeFromUtf16(ReadOnlySpan<Char>, Rune, Int32) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在提供的 UTF-16 源缓冲区开始处解码 Rune。
public:
static System::Buffers::OperationStatus DecodeFromUtf16(ReadOnlySpan<char> source, [Runtime::InteropServices::Out] System::Text::Rune % result, [Runtime::InteropServices::Out] int % charsConsumed);
public static System.Buffers.OperationStatus DecodeFromUtf16 (ReadOnlySpan<char> source, out System.Text.Rune result, out int charsConsumed);
static member DecodeFromUtf16 : ReadOnlySpan<char> * Rune * int -> System.Buffers.OperationStatus
Public Shared Function DecodeFromUtf16 (source As ReadOnlySpan(Of Char), ByRef result As Rune, ByRef charsConsumed As Integer) As OperationStatus
参数
- source
- ReadOnlySpan<Char>
只读 UTF-16 字符范围。
- result
- Rune
此方法返回时,已解码的 rune。
- charsConsumed
- Int32
此方法返回时,为创建 rune 而读取的字符数。
返回
如果源缓冲区以有效的 UTF-16 编码标量值开头,则 Done。 然后 result
包含解码的 Rune,charsConsumed
包含用于在输入缓冲区中解码 Rune 的 Char 值的数目。
如果源缓冲区为空,或仅包含独立的 UTF-16 高代理项字符,则 NeedMoreData。 然后 result
包含 ReplacementChar,charsConsumed
包含输入缓冲区的长度。
如果源缓冲区以格式错误的 UTF-16 编码标量值开头,则 InvalidData。 然后 result
包含 ReplacementChar,charsConsumed
包含用于解码格式错误的序列的 Char 值的数目。
.
注解
一般约定是在循环中调用此方法,在循环的每个迭代中按charsConsumed
元素切片source
缓冲区。 在循环的每个迭代中, result
如果成功解码数据,则包含实际标量值;如果数据未成功解码,则 Rune.ReplacementChar 包含该值。 此模式在循环循环时提供对无效序列的便捷自动 U+FFFD 替换。