This documentation is archived and is not being maintained.

UTF32Encoding Constructor (Boolean, Boolean, Boolean)

Initializes a new instance of the UTF32Encoding class. Parameters specify whether to use the big endian byte order, whether to provide a Unicode byte order mark, and whether to throw an exception when an invalid encoding is detected.

Namespace:  System.Text
Assembly:  mscorlib (in mscorlib.dll)

public UTF32Encoding(
	bool bigEndian,
	bool byteOrderMark,
	bool throwOnInvalidCharacters


Type: System.Boolean
true to use the big endian byte order (most significant byte first), or false to use the little endian byte order (least significant byte first).
Type: System.Boolean
true to specify that a Unicode byte order mark is provided; otherwise, false.
Type: System.Boolean
true to specify that an exception should be thrown when an invalid encoding is detected; otherwise, false.

If throwOnInvalidCharacters is true, a method that detects an invalid byte sequence throws System.ArgumentException. Otherwise, the method does not throw an exception, and the invalid sequence is ignored.


For security reasons, your applications are recommended to use this constructor to create an instance of the UTF32Encoding class and turn on error detection by setting throwOnInvalidCharacters to true.

The following code example demonstrates the behavior of UTF32Encoding, both with error detection enabled and without.

using System;
using System.Text;

public class SamplesUTF32Encoding  {

   public static void Main()  {

      // Create an instance of UTF32Encoding using little-endian byte order.
      // This will be used for encoding.
      UTF32Encoding u32LE     = new UTF32Encoding( false, true );

      // Create two instances of UTF32Encoding using big-endian byte order: one with error detection and one without.
      // These will be used for decoding.
      UTF32Encoding u32withED = new UTF32Encoding( true, true, true );
      UTF32Encoding u32noED   = new UTF32Encoding( true, true, false );

      // Create byte arrays from the same string containing the following characters:
      //    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)
      //    a low-surrogate value (U+DCFF)
      String myStr = "za\u0306\u01FD\u03B2\uD8FF\uDCFF";

      // Encode the string using little-endian byte order.
      byte[] myBytes = new byte[u32LE.GetByteCount( myStr )];
      u32LE.GetBytes( myStr, 0, myStr.Length, myBytes, 0 );

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

      // Decode the byte array without error detection.
      Console.WriteLine( "Decoding without error detection:" );
      PrintDecodedString( myBytes, u32noED );


   // 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 ( System.ArgumentException e )  {
         Console.WriteLine( e.ToString() );




.NET Framework

Supported in: 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.