Преобразование int-->byte-->char || string - C#

Узнай цену своей работы

Формулировка задачи:

Немного запутался... Прошу распутать. Есть код, который сохраняет значения Int в файл.
Листинг программы
  1. 73
  2. 83
  3. 72
  4. 208
  5. 184
  6. 186
это коды символов в UTF-8 (3 англ.символа, 3 русских символа) Достаю из файла следующим образом:
Листинг программы
  1. string line;
  2. System.IO.StreamReader file = new System.IO.StreamReader("file.txt");
  3. byte[] outpb = new byte[10];
  4. while ((line = file.ReadLine()) != null)
  5. {
  6. int a = int.Parse(line); // делаю int
  7. byte str1 = (byte)a; // делаю byte
  8. char b2 = (char)str1; // делаю char
  9. }
Английские буквы/символы отображаются без проблем. Русские буквы - символом ?, прочие символы отображаются всякими рогаликами. пробовал менять исходную кодировку на ASCII, Unicode = не прокатило. Пробовал делать так:
Листинг программы
  1. int a = int.Parse(line); // получаю int
  2. byte str1 = (byte)a; // перевожу в byte
  3. for (int i = 0; i < line.Count(); i++ )
  4. {
  5. outpb[i] = str1; // заталкиваю в массив byte[]
  6. }
  7. Console.WriteLine(Encoding.UTF8.GetString(outpb));
Тоже выводятся знаки вопроса и пр. рогалики Как правильно произвести преобразование, чтобы русские символы отображались корректно?
Полагаю, что ошибка кроется в самих кодировках, т.к. например русская буква И в UTF-8 имеет представление: 208 152, а моему скрипту на это до лампочки, т.к. он сохраняет 208 и 152 отдельно...

Решение задачи: «Преобразование int-->byte-->char || string»

textual
Листинг программы
  1. using System;
  2. using System.Linq;
  3. using System.Text;
  4.  
  5. namespace ConsoleApplication8
  6. {
  7.     public struct Program
  8.     {
  9.         private static void Main(string[] args)
  10.         {
  11.             string str = "qwertyuiopasdfghjklzxcvbnm йцукенгшщзхъфывапролджэячсмитьбю";
  12.  
  13.             Console.WriteLine(str);
  14.  
  15.  
  16.             int[] ints = Encoding.Unicode.GetBytes(str).Select(i => (int) i).ToArray();
  17.  
  18.            string tmp=string.Join(" ",ints);
  19.             Console.WriteLine(tmp);
  20.  
  21.             Console.WriteLine();
  22.  
  23.             byte[] arr = tmp.Split(' ').Select(byte.Parse).ToArray();
  24.  
  25.             Console.WriteLine(Encoding.Unicode.GetString(arr));
  26.  
  27.             Console.ReadKey();
  28.  
  29.         }
  30.  
  31.     }
  32.  
  33. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут