Смена кодировки без использования Encoding - C#
Формулировка задачи:
Задание:
Выполнить перекодирование исходного текста без использования системных или других библиотек или функций, с использованием побитовых операций и операций сдвига:
a. Раскодировать символ из исходной кодировки в UCS.
b. Закодировать символ из UCS в конечную кодировку.
Кодировки: Windows-1251 -> UTF-8
Помогите пожалуйста. Везде где смотрел делают через Encoding, а мне это недоступно по условию задания.
Решение задачи: «Смена кодировки без использования Encoding»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication182 { class Program { static void Main(string[] args) { var source = "мама мыла раму! :) Ёё"; var win1251 = Encoding.GetEncoding(1251).GetBytes(source); var utf8 = Win1251toUTF8(win1251); var str = Encoding.UTF8.GetString(utf8); Console.WriteLine("Source: " + source); Console.WriteLine("Result: " + source); Console.ReadLine(); } static byte[] Win1251toUTF8(byte[] win1251) { var res = new List<byte>(); foreach(var c in win1251) { if (c >= 192 && c <= 239) res.AddRange(new byte[] { 209, (byte)(c - 48) }); else if (c > 239) res.AddRange(new byte[] { 209, (byte)(c - 112) }); else if (c == 184) res.AddRange(new byte[] { 209, 209 }); else if (c == 168) res.AddRange(new byte[] { 208, 129 }); else res.Add(c); } return res.ToArray(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д