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 ASCIIEncoding.GetBytes (String, Int32, Int32, Byte[], Int32)

 

Data di pubblicazione: ottobre 2016

Codifica un set di caratteri dall'oggetto String specificato nella matrice di byte specificata.

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

public override int GetBytes(
	string chars,
	int charIndex,
	int charCount,
	byte[] bytes,
	int byteIndex
)

Parametri

chars
Type: System.String

Oggetto String contenente il set di caratteri da codificare.

charIndex
Type: System.Int32

Indice del primo carattere da codificare.

charCount
Type: System.Int32

Numero di caratteri da codificare.

bytes
Type: System.Byte[]

Matrice di byte che deve contenere la sequenza di byte risultante.

byteIndex
Type: System.Int32

Indice in corrispondenza del quale iniziare a scrivere la sequenza di byte risultante.

Valore restituito

Type: System.Int32

Numero effettivo di byte scritti in bytes.

Exception Condition
ArgumentNullException

s è null.

-oppure-

bytes è null.

ArgumentOutOfRangeException

charIndex o charCount o byteIndex è minore di zero.

-oppure-

charIndex e charCount non identificano un intervallo valido in chars.

-oppure-

byteIndex non è un indice valido in bytes.

ArgumentException

bytes non dispone di sufficiente capacità da byteIndex alla fine della matrice per contenere i byte risultanti.

EncoderFallbackException

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

-e-

EncoderFallback è impostato su EncoderExceptionFallback.

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

Convertire, ad esempio i dati letti da un flusso, i dati possono 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.

ASCIIEncoding non fornisce il rilevamento errori. Qualsiasi carattere Unicode maggiore di U + 007F viene codificato come punto interrogativo ASCII ("?").

System_CAPS_cautionAttenzione

Per motivi di sicurezza, l'applicazione è consigliabile utilizzare UTF8Encoding, UnicodeEncoding, o UTF32Encoding e attivare il rilevamento errori.

Nell'esempio seguente viene illustrato come utilizzare il GetBytes per codificare un intervallo di elementi da una matrice di caratteri Unicode e archiviare i byte codificati in un intervallo di elementi in una matrice di byte.

using System;
using System.Text;

class ASCIIEncodingExample {
    public static void Main() {
        Byte[] bytes;
        // Unicode characters.
        Char[] chars = new Char[] {
            '\u0023', // #
            '\u0025', // %
            '\u03a0', // Pi
            '\u03a3'  // Sigma
        };

        ASCIIEncoding ascii = new ASCIIEncoding();

        int byteCount = ascii.GetByteCount(chars, 1, 2);
        bytes = new Byte[byteCount];
        int bytesEncodedCount = ascii.GetBytes(chars, 1, 2, bytes, 0);

        Console.WriteLine(
            "{0} bytes used to encode characters.", bytesEncodedCount
        );

        Console.Write("Encoded bytes: ");
        foreach (Byte b in bytes) {
            Console.Write("[{0}]", b);
        }
        Console.WriteLine();
    }
}

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