Преобразование int-->byte-->char || string - C#
Формулировка задачи:
Немного запутался... Прошу распутать.
Есть код, который сохраняет значения Int в файл.
это коды символов в UTF-8 (3 англ.символа, 3 русских символа)
Достаю из файла следующим образом:
Английские буквы/символы отображаются без проблем.
Русские буквы - символом ?, прочие символы отображаются всякими рогаликами.
пробовал менять исходную кодировку на ASCII, Unicode = не прокатило.
Пробовал делать так:
Тоже выводятся знаки вопроса и пр. рогалики
Как правильно произвести преобразование, чтобы русские символы отображались корректно?
Листинг программы
- 73
- 83
- 72
- 208
- 184
- 186
Листинг программы
- string line;
- System.IO.StreamReader file = new System.IO.StreamReader("file.txt");
- byte[] outpb = new byte[10];
- while ((line = file.ReadLine()) != null)
- {
- int a = int.Parse(line); // делаю int
- byte str1 = (byte)a; // делаю byte
- char b2 = (char)str1; // делаю char
- }
Листинг программы
- int a = int.Parse(line); // получаю int
- byte str1 = (byte)a; // перевожу в byte
- for (int i = 0; i < line.Count(); i++ )
- {
- outpb[i] = str1; // заталкиваю в массив byte[]
- }
- Console.WriteLine(Encoding.UTF8.GetString(outpb));
Полагаю, что ошибка кроется в самих кодировках, т.к. например русская буква И в UTF-8 имеет представление: 208 152, а моему скрипту на это до лампочки, т.к. он сохраняет 208 и 152 отдельно...
Решение задачи: «Преобразование int-->byte-->char || string»
textual
Листинг программы
- using System;
- using System.Linq;
- using System.Text;
- namespace ConsoleApplication8
- {
- public struct Program
- {
- private static void Main(string[] args)
- {
- string str = "qwertyuiopasdfghjklzxcvbnm йцукенгшщзхъфывапролджэячсмитьбю";
- Console.WriteLine(str);
- int[] ints = Encoding.Unicode.GetBytes(str).Select(i => (int) i).ToArray();
- string tmp=string.Join(" ",ints);
- Console.WriteLine(tmp);
- Console.WriteLine();
- byte[] arr = tmp.Split(' ').Select(byte.Parse).ToArray();
- Console.WriteLine(Encoding.Unicode.GetString(arr));
- Console.ReadKey();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д