Encoding.UTF32 속성

 

little endian 바이트 순서를 사용하는 UTF-32 형식에 대한 인코딩을 가져옵니다.

네임스페이스:   System.Text
어셈블리:  mscorlib.dll의 mscorlib

public static Encoding UTF32 { get; }

속성 값

Type: System.Text.Encoding

little-endian 바이트 순서를 사용하는 UTF-32 형식에 대한 인코딩 개체입니다.

UTF32Encoding 이 속성에서 반환 되는 개체는 응용 프로그램에 대 한 적절 한 동작이 있을 수 없습니다.대체 (fallback) 교체를 사용 하 여 인코딩할 수 없는 각 문자열 디코딩할 수 없는 각 바이트 유니코드 대체 문자 (U + FFFE)으로 바꿉니다.대신, 호출할 수 있습니다는 UTF32Encoding.UTF32Encoding(Boolean, Boolean, Boolean) 생성자를 인스턴스화하는 데는 UTF32Encoding 인 fallback이 개체는 EncoderFallbackException 또는 DecoderFallbackException, 다음 예제와 같이 합니다.

using System;
using System.Text;

public class Example
{
   public static void Main()
   {
      Encoding enc = new UTF32Encoding(false, true, true);
      string value = "\u00C4 \uD802\u0033 \u00AE"; 

      try {
         byte[] bytes= enc.GetBytes(value);
         foreach (var byt in bytes)
            Console.Write("{0:X2} ", byt);
         Console.WriteLine();

         string value2 = enc.GetString(bytes);
         Console.WriteLine(value2);
      }
      catch (EncoderFallbackException e) {
         Console.WriteLine("Unable to encode {0} at index {1}", 
                           e.IsUnknownSurrogate() ? 
                              String.Format("U+{0:X4} U+{1:X4}", 
                                            Convert.ToUInt16(e.CharUnknownHigh),
                                            Convert.ToUInt16(e.CharUnknownLow)) :
                              String.Format("U+{0:X4}", 
                                            Convert.ToUInt16(e.CharUnknown)),
                           e.Index);
      }                     
   }
}
// The example displays the following output:
//        Unable to encode U+D802 at index 2

한 설명은 little endian 바이트 순서에 대 한 참조는 Encoding 클래스 항목입니다.

.NET Framework 및 인코딩을 사용 하는 유니코드에 대 한 설명은에서 지 원하는 인코딩에 대 한 정보를 참조 하십시오. .NET Framework의 문자 인코딩.

다음 예제에서는 문자 배열을 인코딩하는 데 필요한 바이트 수를 결정 하 고 문자를 인코딩한 결과 바이트를 표시 합니다.

using System;
using System.Text;

public class SamplesEncoding  {

   public static void Main()  {

      // The characters to encode:
      //    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)
      char[] myChars = new char[] { 'z', 'a', '\u0306', '\u01FD', '\u03B2', '\uD8FF', '\uDCFF' };

      // Get different encodings.
      Encoding  u7    = Encoding.UTF7;
      Encoding  u8    = Encoding.UTF8;
      Encoding  u16LE = Encoding.Unicode;
      Encoding  u16BE = Encoding.BigEndianUnicode;
      Encoding  u32   = Encoding.UTF32;

      // Encode the entire array, and print out the counts and the resulting bytes.
      PrintCountsAndBytes( myChars, u7 );
      PrintCountsAndBytes( myChars, u8 );
      PrintCountsAndBytes( myChars, u16LE );
      PrintCountsAndBytes( myChars, u16BE );
      PrintCountsAndBytes( myChars, u32 );

   }


   public static void PrintCountsAndBytes( char[] chars, Encoding enc )  {

      // Display the name of the encoding used.
      Console.Write( "{0,-30} :", enc.ToString() );

      // Display the exact byte count.
      int iBC  = enc.GetByteCount( chars );
      Console.Write( " {0,-3}", iBC );

      // Display the maximum byte count.
      int iMBC = enc.GetMaxByteCount( chars.Length );
      Console.Write( " {0,-3} :", iMBC );

      // Encode the array of chars.
      byte[] bytes = enc.GetBytes( chars );

      // Display all the encoded bytes.
      PrintHexBytes( bytes );

   }


   public static void PrintHexBytes( byte[] bytes )  {

      if (( bytes == null ) || ( bytes.Length == 0 ))
         Console.WriteLine( "<none>" );
      else  {
         for ( int i = 0; i < bytes.Length; i++ )
            Console.Write( "{0:X2} ", bytes[i] );
         Console.WriteLine();
      }

   }

}


/* 
This code produces the following output.

System.Text.UTF7Encoding       : 18  23  :7A 61 2B 41 77 59 42 2F 51 4F 79 32 50 2F 63 2F 77 2D
System.Text.UTF8Encoding       : 12  24  :7A 61 CC 86 C7 BD CE B2 F1 8F B3 BF
System.Text.UnicodeEncoding    : 14  16  :7A 00 61 00 06 03 FD 01 B2 03 FF D8 FF DC
System.Text.UnicodeEncoding    : 14  16  :00 7A 00 61 03 06 01 FD 03 B2 D8 FF DC FF
System.Text.UTF32Encoding      : 24  32  :7A 00 00 00 61 00 00 00 06 03 00 00 FD 01 00 00 B2 03 00 00 FF FC 04 00

*/

Universal Windows Platform
10 이후에 사용 가능
.NET Framework
2.0 이후에 사용 가능
맨 위로 이동
표시: