UTF7Encoding.GetDecoder Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá dekodér, který převede zakódovanou sekvenci bajtů UTF-7 na posloupnost znaků Unicode.
public:
override System::Text::Decoder ^ GetDecoder();
public override System.Text.Decoder GetDecoder ();
override this.GetDecoder : unit -> System.Text.Decoder
Public Overrides Function GetDecoder () As Decoder
Návraty
A Decoder , který převede posloupnost kódování UTF-7 bajtů na posloupnost znaků Unicode.
Příklady
Následující příklad kódu ukazuje, jak pomocí GetDecoder metody získat dekodér pro převod UTF-7 kódovaných bajtů na posloupnost znaků.
using namespace System;
using namespace System::Text;
using namespace System::Collections;
int main()
{
array<Char>^chars;
array<Byte>^bytes = {99,43,65,119,67,103,111,65,45};
Decoder^ utf7Decoder = Encoding::UTF7->GetDecoder();
int charCount = utf7Decoder->GetCharCount( bytes, 0, bytes->Length );
chars = gcnew array<Char>(charCount);
int charsDecodedCount = utf7Decoder->GetChars( bytes, 0, bytes->Length, chars, 0 );
Console::WriteLine( "{0} characters used to decode bytes.", charsDecodedCount );
Console::Write( "Decoded chars: " );
IEnumerator^ myEnum = chars->GetEnumerator();
while ( myEnum->MoveNext() )
{
Char c = safe_cast<Char>(myEnum->Current);
Console::Write( "[{0}]", c.ToString() );
}
Console::WriteLine();
}
using System;
using System.Text;
class UTF7EncodingExample {
public static void Main() {
Char[] chars;
Byte[] bytes = new Byte[] {
99, 43, 65, 119, 67, 103, 111, 65, 45
};
Decoder utf7Decoder = Encoding.UTF7.GetDecoder();
int charCount = utf7Decoder.GetCharCount(bytes, 0, bytes.Length);
chars = new Char[charCount];
int charsDecodedCount = utf7Decoder.GetChars(bytes, 0, bytes.Length, chars, 0);
Console.WriteLine(
"{0} characters used to decode bytes.", charsDecodedCount
);
Console.Write("Decoded chars: ");
foreach (Char c in chars) {
Console.Write("[{0}]", c);
}
Console.WriteLine();
}
}
Imports System.Text
Class UTF7EncodingExample
Public Shared Sub Main()
Dim chars() As Char
Dim bytes() As Byte = {99, 43, 65, 119, 67, 103, 111, 65, 45}
Dim utf7Decoder As Decoder = Encoding.UTF7.GetDecoder()
Dim charCount As Integer = utf7Decoder.GetCharCount(bytes, 0, bytes.Length)
chars = New Char(charCount - 1) {}
Dim charsDecodedCount As Integer = utf7Decoder.GetChars(bytes, 0, bytes.Length, chars, 0)
Console.WriteLine("{0} characters used to decode bytes.", charsDecodedCount)
Console.Write("Decoded chars: ")
Dim c As Char
For Each c In chars
Console.Write("[{0}]", c)
Next c
Console.WriteLine()
End Sub
End Class
Poznámky
Metoda Decoder.GetChars převede sekvenční bloky bajtů na sekvenční bloky znaků způsobem podobným GetChars metodě této třídy. Udržuje Decoder však informace o stavu mezi voláními, aby bylo možné správně dekódovat sekvence bajtů, které pokrývají bloky. Zachovává Decoder také koncové bajty na konci datových bloků a používá koncové bajty v další dekódovací operaci. Proto jsou GetEncoder užitečné pro síťové přenosy a operace se soubory, GetDecoder protože tyto operace často zpracovávají bloky dat místo kompletního datového proudu.