Csharp/C Sharp/File Stream/UTF8 UTF16

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Convert UTF-8 and ASCII encoded bytes back to UTF-16 encoded string

<source lang="csharp"> using System; using System.IO; using System.Text; class Test {

   public static void Main() 
   {        
       using (StreamWriter output = new StreamWriter("practice.txt")) 
       {
           // Create and write a string containing the symbol for Pi.
           string srcString = "Area = \u03A0r^2";
           // Convert the UTF-16 encoded source string to UTF-8 and ASCII.
           byte[] utf8String = Encoding.UTF8.GetBytes(srcString);
           byte[] asciiString = Encoding.ASCII.GetBytes(srcString);
           
           // Write the UTF-8 and ASCII encoded byte arrays. 
           output.WriteLine("UTF-8  Bytes: {0}", BitConverter.ToString(utf8String));
           output.WriteLine("ASCII  Bytes: {0}", BitConverter.ToString(asciiString));
           
           
           // Convert UTF-8 and ASCII encoded bytes back to UTF-16 encoded  
           // string and write.
           output.WriteLine("UTF-8  Text : {0}", Encoding.UTF8.GetString(utf8String));
           output.WriteLine("ASCII  Text : {0}", Encoding.ASCII.GetString(asciiString));
           Console.WriteLine(Encoding.UTF8.GetString(utf8String));
           Console.WriteLine(Encoding.ASCII.GetString(asciiString));
       }
   }

}


      </source>


UTF8 decoder

<source lang="csharp"> using System; using System.IO; using System.Text; class Class1{

 static void Main(string[] args)  {
        byte[] byData = new byte[100];
        char[] charData = new Char[100];
        try {
           FileStream aFile = new FileStream("practice.txt",FileMode.Open);
           aFile.Seek(55,SeekOrigin.Begin);
           aFile.Read(byData,0,100);
        }
        catch(IOException e)
        {
           Console.WriteLine("An IO exception has been thrown!");
           Console.WriteLine(e.ToString());
           Console.ReadLine();
           return;
        }
        Decoder d = Encoding.UTF8.GetDecoder();
        d.GetChars(byData, 0, byData.Length, charData, 0);
        Console.WriteLine(charData);
        return;
 }

}

      </source>