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

Costruttore UTF32Encoding (Boolean, Boolean, Boolean)

 

Data di pubblicazione: ottobre 2016

Inizializza una nuova istanza della classe UTF32Encoding. I parametri specificano se usare l'ordine dei byte big-endian, se fornire un byte order mark Unicode e se generare un'eccezione quando viene rilevata una codifica non valida.

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

public UTF32Encoding(
	bool bigEndian,
	bool byteOrderMark,
	bool throwOnInvalidCharacters
)

Parametri

bigEndian
Type: System.Boolean

true per usare l'ordine dei byte big-endian (byte più significativo al primo posto) o false per usare l'ordine dei byte little-endian (byte meno significativo al primo posto).

byteOrderMark
Type: System.Boolean

true per specificare che viene fornito un byte order mark Unicode; in caso contrario, false.

throwOnInvalidCharacters
Type: System.Boolean

true per specificare che viene generata un'eccezione quando viene rilevata una codifica non valida; in caso contrario, false.

Se throwOnInvalidCharacters è true, un metodo che rileva una sequenza di byte non valido genera System.ArgumentException. In caso contrario, il metodo non genera un'eccezione e la sequenza non valida verrà ignorata.

System_CAPS_noteNota

Per motivi di sicurezza, è necessario abilitare il rilevamento errori mediante la chiamata di UTF32Encoding(Boolean, Boolean, Boolean) costruttore e l'impostazione relativa throwOnInvalidCharacters argomento true.

Nell'esempio seguente viene illustrato il comportamento di UTF32Encoding, con l'attivazione del rilevamento errori e senza.

using System;
using System.Text;

public class Example
{
   public static void Main()
   {
     // Create a UTF32Encoding object with error detection enabled.
      var encExc = new UTF32Encoding(! BitConverter.IsLittleEndian, true, true);
      // Create a UTF32Encoding object with error detection disabled.
      var encRepl = new UTF32Encoding(! BitConverter.IsLittleEndian, true, false);

      // Create a byte arrays from a string, and add an invalid surrogate pair, as follows.
      //    Latin Small Letter Z (U+007A)
      //    Latin Small Letter A (U+0061)
      //    Combining Breve (U+0306)
      //    Latin Small Letter AE With Acute (U+01FD)
      //    Greek Small Letter Beta (U+03B2)
      //    a high-surrogate value (U+D8FF)
      //    an invalid low surrogate (U+01FF)
      String s = "za\u0306\u01FD\u03B2";

      // Encode the string using little-endian byte order.
      int index = encExc.GetByteCount(s);
      Byte[] bytes = new Byte[index + 4];
      encExc.GetBytes(s, 0, s.Length, bytes, 0);
      bytes[index] = 0xFF;
      bytes[index + 1] = 0xD8;
      bytes[index + 2] = 0xFF;
      bytes[index + 3] = 0x01;

      // Decode the byte array with error detection.
      Console.WriteLine("Decoding with error detection:");
      PrintDecodedString(bytes, encExc);

      // Decode the byte array without error detection.
      Console.WriteLine("Decoding without error detection:");
      PrintDecodedString(bytes, encRepl);
   }

   // Decode the bytes and display the string.
   public static void PrintDecodedString(Byte[] bytes, Encoding enc)
   {
      try {
         Console.WriteLine("   Decoded string: {0}", enc.GetString(bytes, 0, bytes.Length));
      }
      catch (DecoderFallbackException e) {
         Console.WriteLine(e.ToString());
      }
      Console.WriteLine();
   }
}
// The example displays the following output:
//    Decoding with error detection:
//    System.Text.DecoderFallbackException: Unable to translate bytes [FF][D8][FF][01] at index
//    20 from specified code page to Unicode.
//       at System.Text.DecoderExceptionFallbackBuffer.Throw(Byte[] bytesUnknown, Int32 index)
//       at System.Text.DecoderExceptionFallbackBuffer.Fallback(Byte[] bytesUnknown, Int32 index
//    )
//       at System.Text.DecoderFallbackBuffer.InternalFallback(Byte[] bytes, Byte* pBytes)
//       at System.Text.UTF32Encoding.GetCharCount(Byte* bytes, Int32 count, DecoderNLS baseDeco
//    der)
//       at System.Text.UTF32Encoding.GetString(Byte[] bytes, Int32 index, Int32 count)
//       at Example.PrintDecodedString(Byte[] bytes, Encoding enc)
//
//    Decoding without error detection:
//       Decoded string: zăǽβ�

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