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.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)

[ComVisibleAttribute(false)]
public override int GetBytes(
	string s,
	int charIndex,
	int charCount,
	byte[] bytes,
	int byteIndex
)

Parametri

s
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 (Nothing).

-oppure-

bytes è null (Nothing).

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.

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. Caratteri non validi vengono codificati come un carattere in base 64 modificato. 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 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 UTF7EncodingExample {
    public static void Main() {
        Byte[] bytes;
        // Unicode characters.
        Char[] chars = new Char[] {
            '\u0023', // #
            '\u0025', // %
            '\u03a0', // Pi
            '\u03a3'  // Sigma
        };

        UTF7Encoding utf7 = new UTF7Encoding();

        int byteCount = utf7.GetByteCount(chars, 1, 2);
        bytes = new Byte[byteCount];
        int bytesEncodedCount = utf7.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 2.0
Torna all'inizio
Mostra: