当前位置: 首页>>代码示例>>C#>>正文


C# UTF32Encoding类代码示例

本文整理汇总了C#中System.Text.UTF32Encoding的典型用法代码示例。如果您正苦于以下问题:C# UTF32Encoding类的具体用法?C# UTF32Encoding怎么用?C# UTF32Encoding使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


UTF32Encoding类属于System.Text命名空间,在下文中一共展示了UTF32Encoding类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Main

//引入命名空间
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();
   }
}
开发者ID:.NET开发者,项目名称:System.Text,代码行数:53,代码来源:UTF32Encoding

输出:

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ăǽβ�

示例2: Main

//引入命名空间
using System;
using System.Text;

public class Example
{
    public static void Main()
    {
        // The encoding.
        var enc = new UTF32Encoding();
        
        // Create a string.
        String s = "This string contains two characters " +
                   "with codes outside the ASCII code range: " +
                   "Pi (\u03A0) and Sigma (\u03A3).";
        Console.WriteLine("Original string:");
        Console.WriteLine("   {0}", s);
        
        // Encode the string.
        Byte[] encodedBytes = enc.GetBytes(s);
        Console.WriteLine();
        Console.WriteLine("Encoded bytes:");
        for (int ctr = 0; ctr < encodedBytes.Length; ctr++) {
            Console.Write("[{0:X2}]{1}", encodedBytes[ctr],
                                         (ctr + 1) % 4 == 0 ? " " : "" );
            if ((ctr + 1) % 16 == 0) Console.WriteLine();
        }
        Console.WriteLine();
        
        // Decode bytes back to string.
        // Notice Pi and Sigma characters are still present.
        String decodedString = enc.GetString(encodedBytes);
        Console.WriteLine();
        Console.WriteLine("Decoded string:");
        Console.WriteLine("   {0}", decodedString);
    }
}
开发者ID:.NET开发者,项目名称:System.Text,代码行数:37,代码来源:UTF32Encoding

输出:

Original string:
This string contains two characters with codes outside the ASCII code range:
Pi (π) and Sigma (Σ).

Encoded bytes:
[54][00][00][00] [68][00][00][00] [69][00][00][00] [73][00][00][00]
[20][00][00][00] [73][00][00][00] [74][00][00][00] [72][00][00][00]
[69][00][00][00] [6E][00][00][00] [67][00][00][00] [20][00][00][00]
[63][00][00][00] [6F][00][00][00] [6E][00][00][00] [74][00][00][00]
[61][00][00][00] [69][00][00][00] [6E][00][00][00] [73][00][00][00]
[20][00][00][00] [74][00][00][00] [77][00][00][00] [6F][00][00][00]
[20][00][00][00] [63][00][00][00] [68][00][00][00] [61][00][00][00]
[72][00][00][00] [61][00][00][00] [63][00][00][00] [74][00][00][00]
[65][00][00][00] [72][00][00][00] [73][00][00][00] [20][00][00][00]
[77][00][00][00] [69][00][00][00] [74][00][00][00] [68][00][00][00]
[20][00][00][00] [63][00][00][00] [6F][00][00][00] [64][00][00][00]
[65][00][00][00] [73][00][00][00] [20][00][00][00] [6F][00][00][00]
[75][00][00][00] [74][00][00][00] [73][00][00][00] [69][00][00][00]
[64][00][00][00] [65][00][00][00] [20][00][00][00] [74][00][00][00]
[68][00][00][00] [65][00][00][00] [20][00][00][00] [41][00][00][00]
[53][00][00][00] [43][00][00][00] [49][00][00][00] [49][00][00][00]
[20][00][00][00] [63][00][00][00] [6F][00][00][00] [64][00][00][00]
[65][00][00][00] [20][00][00][00] [72][00][00][00] [61][00][00][00]
[6E][00][00][00] [67][00][00][00] [65][00][00][00] [3A][00][00][00]
[20][00][00][00] [50][00][00][00] [69][00][00][00] [20][00][00][00]
[28][00][00][00] [A0][03][00][00] [29][00][00][00] [20][00][00][00]
[61][00][00][00] [6E][00][00][00] [64][00][00][00] [20][00][00][00]
[53][00][00][00] [69][00][00][00] [67][00][00][00] [6D][00][00][00]
[61][00][00][00] [20][00][00][00] [28][00][00][00] [A3][03][00][00]
[29][00][00][00] [2E][00][00][00]

Decoded string:
This string contains two characters with codes outside the ASCII code range:
Pi (π) and Sigma (Σ).

示例3: Main

//引入命名空间
using System;
using System.IO;
using System.Text;

public class Example
{
    public static void Main()
    {
        // Create a UTF-32 encoding that supports a BOM.
        var enc = new UTF32Encoding();
        
        // A Unicode string with two characters outside an 8-bit code range.
        String s = "This Unicode string has 2 characters " +
                   "outside the ASCII range: \n" +
                   "Pi (\u03A0), and Sigma (\u03A3).";
        Console.WriteLine("Original string:");
        Console.WriteLine(s);
        Console.WriteLine();
        
        // Encode the string.
        Byte[] encodedBytes = enc.GetBytes(s);
        Console.WriteLine("The encoded string has {0} bytes.\n",
                          encodedBytes.Length);

        // Write the bytes to a file with a BOM.
        var fs = new FileStream(@".\UTF32Encoding.txt", FileMode.Create);
        Byte[] bom = enc.GetPreamble();
        fs.Write(bom, 0, bom.Length);
        fs.Write(encodedBytes, 0, encodedBytes.Length);
        Console.WriteLine("Wrote {0} bytes to the file.\n", fs.Length);
        fs.Close();

        // Open the file using StreamReader.
        var sr = new StreamReader(@".\UTF32Encoding.txt");
        String newString = sr.ReadToEnd();
        sr.Close();
        Console.WriteLine("String read using StreamReader:");
        Console.WriteLine(newString);
        Console.WriteLine();
        
        // Open the file as a binary file and decode the bytes back to a string.
        fs = new FileStream(@".\Utf32Encoding.txt", FileMode.Open);
        Byte[] bytes = new Byte[fs.Length];
        fs.Read(bytes, 0, (int)fs.Length);
        fs.Close();

        String decodedString = enc.GetString(bytes);
        Console.WriteLine("Decoded bytes from binary file:");
        Console.WriteLine(decodedString);
    }
}
开发者ID:.NET开发者,项目名称:System.Text,代码行数:52,代码来源:UTF32Encoding

输出:

Original string:
This Unicode string has 2 characters outside the ASCII range:
Pi (π), and Sigma (Σ).

The encoded string has 340 bytes.

Wrote 344 bytes to the file.

String read using StreamReader:
This Unicode string has 2 characters outside the ASCII range:
Pi (π), and Sigma (Σ).

Decoded bytes from binary file:
This Unicode string has 2 characters outside the ASCII range:
Pi (π), and Sigma (Σ).


注:本文中的System.Text.UTF32Encoding类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。