Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo UTF7Encoding.GetChars (Byte[], Int32, Int32, Char[], Int32)

 

Data di pubblicazione: ottobre 2016

Decodifica una sequenza di byte dalla matrice di byte specificata nella matrice di caratteri specificata.

Spazio dei nomi:   System.Text
Assembly:  mscorlib (in mscorlib.dll)

public override int GetChars(
	byte[] bytes,
	int byteIndex,
	int byteCount,
	char[] chars,
	int charIndex
)

Parametri

bytes
Type: System.Byte[]

Matrice di byte contenente la sequenza di byte da decodificare.

byteIndex
Type: System.Int32

Indice del primo byte da decodificare.

byteCount
Type: System.Int32

Numero di byte da decodificare.

chars
Type: System.Char[]

Matrice di caratteri che deve contenere il set di caratteri risultante.

charIndex
Type: System.Int32

Indice in corrispondenza del quale iniziare a scrivere il set di caratteri risultante.

Valore restituito

Type: System.Int32

Numero effettivo di caratteri scritti in chars.

Exception Condition
ArgumentNullException

bytes è null (Nothing).

-oppure-

chars è null (Nothing).

ArgumentOutOfRangeException

byteIndex o byteCount o charIndex è minore di zero.

-oppure-

byteindex e byteCount non identificano un intervallo valido in bytes.

-oppure-

charIndex non è un indice valido in chars.

ArgumentException

chars non dispone di sufficiente capacità da charIndex alla fine della matrice per contenere i caratteri risultanti.

DecoderFallbackException

Si è verificato un fallback. Vedere Codifica di caratteri in .NET Framework per una spiegazione completa

-e-

DecoderFallback è impostato su DecoderExceptionFallback.

Per calcolare la dimensione di matrice esatti necessari per GetChars per archiviare i caratteri risultanti, utilizzare GetCharCount. Per calcolare la dimensione massima della matrice, l'applicazione deve utilizzare GetMaxCharCount. Il GetCharCount metodo consente in genere l'allocazione di memoria inferiore, mentre il GetMaxCharCount metodo in genere viene eseguito più velocemente.

Dati da convertire, ad esempio i dati letti da un flusso, potrebbero essere disponibili solo in blocchi sequenziali. In questo caso, o se la quantità di dati è talmente grande che deve essere la suddivisione in blocchi più piccoli, l'applicazione deve utilizzare il Decoder o Encoder fornite dal GetDecoder metodo o GetEncoder (metodo), rispettivamente.

System_CAPS_noteNota

UTF7Encoding non fornisce il rilevamento errori. Quando vengono rilevati byte non validi, UTF7Encoding generalmente emette i byte non validi. Se un byte è maggiore di 0x7F esadecimale, il valore di byte viene esteso in base zero in un carattere Unicode, il risultato viene archiviato nel chars matrice e da qualsiasi sequenza di spostamento viene terminata. Ad esempio, se il byte da codificare è l'esadecimale 0x81, il carattere risulta è U + 0081. Per motivi di sicurezza, si consiglia di utilizzare UTF8Encoding, UnicodeEncoding, o UTF32Encoding e attivare il rilevamento errori.

Esempio di codice seguente viene illustrato come utilizzare il GetChars per decodificare un intervallo di elementi in una matrice di byte e memorizzare il risultato in una matrice di caratteri.

using System;
using System.Text;

class UTF7EncodingExample {
    public static void Main() {
        Char[] chars;
        Byte[] bytes = new Byte[] {
             85,  84,  70,  55,  32,  69, 110,
             99, 111, 100, 105, 110, 103,  32,
             69, 120,  97, 109, 112, 108, 101
        };

        UTF7Encoding utf7 = new UTF7Encoding();

        int charCount = utf7.GetCharCount(bytes, 2, 8);
        chars = new Char[charCount];
        int charsDecodedCount = utf7.GetChars(bytes, 2, 8, 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();
    }
}

Universal Windows Platform
Disponibile da 10
.NET Framework
Disponibile da 1.1
Torna all'inizio
Mostra: