本文整理汇总了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();
}
}
输出:
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);
}
}
输出:
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);
}
}
输出:
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 (Σ).