Обучение Visual C# Вторник, 08.07.2025, 18:31
Меню сайта
Категории раздела
Работа с классами .Net Framework 4.0 [2]
Работа с контролами Visual C# 2010 [3]
Наш опрос
Оцените мой сайт
Всего ответов: 45
Статистика
Яндекс.Метрика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
<
Форма входа
Главная » 2012 » Февраль » 02 » Работа с разными кодировками.
10:13
Работа с разными кодировками.
Работа с кодировками.

По умолчанию в .NET все текстовые данные в кодировке UTF8, но часто требуется считать текстовый файл, сохраненный в другой кодировке, допустим в WIN1251. В таком случае если в файле был русский текст в кодировке WIN1251, при считывании его в UTF8 мы получим нечитаемые данные. Для того чтобы переводить строки из одной кодировки в другую существует класс Encoding из пространства имен System.Text, благодаря которому зная исходную кодировку мы можем привести текстовые данные к нужной кодировке. Рассмотрим следующий пример, например, мы хотим конвертировать считанную строку в кодировке WIN1251 в кодировку DOS(866), для этого мы можем использовать следующий код:

class Program
{
private static string in1251;
private static readonly Encoding enc1251 = Encoding.GetEncoding(1251);
private static readonly Encoding enc866 = Encoding.GetEncoding(866);

static void Main(string[] args)
{
//....
//тут каким то образом получаем данные в in1251

byte[] sourceBytes = enc1251.GetBytes(in1251);
string outputString = enc866.GetString(sourceBytes);

//далее делаем то что требуется с полученной строкой
//....
}
}


В sourceBytes мы получили входную строку в виде массива байт, которые далее мы можем так же посредством Encoding сохранить в строку с нужной кодировкой. В случае, когда мы читаем текст уже известной кодировке из файла, дела обстоят еще проще. При создании экземпляра StreamReader мы можем явно указать кодировку источника, код будет выглядеть следующим образом:

using (var sr = new StreamReader("Mytext.txt", Encoding.GetEncoding(1251)))
{
string read = null;
while ((read = sr.ReadLine()) != null)
Console.WriteLine(read);
}


При записи в файл в нужной кодировке для StreamWriter так же можно указать кодировку, в которой будет текст.
Просмотров: 2103 | Добавил: Seager74 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Календарь
«  Февраль 2012  »
Пн Вт Ср Чт Пт Сб Вс
  12345
6789101112
13141516171819
20212223242526
272829
Архив записей
Copyright Алексей Чеботарев aka BTR © 2025