Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/302: Рейтинг темы: голосов - 302, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 12

Задать кодировку Windows-1251 для файла

14.05.2014, 14:27. Показов 58633. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Проблема в том что кодировка изменяется на UTF-8,но требуется на Windows-1251.
Что не так?
Заранее спасибо.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private void button2_Click(object sender, EventArgs e)
        {
            Encoding Code = Encoding.GetEncoding(1251);
            string Str = string.Empty;
            using (System.IO.StreamReader Reader = System.IO.File.OpenText(Form1.filename))
            {
                Str = Reader.ReadToEnd();
            }
            Str = Str.Replace("111", "123");
            using (System.IO.StreamWriter file = new System.IO.StreamWriter(Form1.filename))
            {
                file.Write(Str,Code);//Тут мы меняем кодировку,в чем ошибка?
            }
            MessageBox.Show("Работа выполнена успешно!");
            this.Close();
        }
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.05.2014, 14:27
Ответы с готовыми решениями:

Перевести фамилию в кодировку Windows 1251
Закодируйте и разместите в разрядную сетку свою фамилию, используя базовую таблицу кодировки символов Windows 1251. Первая буква фамилии –...

Изменить кодировку строки UTF-8 to windows-1251
получаю из хмл текст, он весь в UTF-8. как изменить кодировку строки UTF-8 to windows-1251? если есть в пхп функция изменения...

Можно ли использовать кодировку Windows-1251 в WP7
Добрый день! Решил посмотреть что представляет из себя Windows Phone 7 и написать тестовое приложение, столкнулся со следующей проблемой....

4
 Аватар для Spawn
995 / 893 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
14.05.2014, 14:30
А где Вы видите, что она "подменилась" на UTF8?
0
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 12
14.05.2014, 14:31  [ТС]
Spawn, Проверял кодировку файла после работы программы
0
 Аватар для Spawn
995 / 893 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
14.05.2014, 14:38
C#
1
2
3
4
            File.WriteAllText("c:\\utf8.txt", "123", Encoding.UTF8);
            File.WriteAllText("c:\\win1251.txt", "123", Encoding.GetEncoding(1251));
            long utf8Size = new FileInfo("c:\\utf8.txt").Length;        //6
            long win1251Size = new FileInfo("c:\\win1251.txt").Length;  //3
Я чего-то не так сделал?
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
17959 / 14044 / 5358
Регистрация: 17.03.2014
Сообщений: 28,722
Записей в блоге: 1
14.05.2014, 14:50
Лучший ответ Сообщение было отмечено Iiisi как решение

Решение

Iiisi, кодировку следует передавать конструкторам StreamReader и StreamWriter. Вызов file.Write(Str,Code) не менял кодировку. Ты вызывал вот эту перегрузку Write предназначенную для форматированного вывода.

Правильно будет так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
private void button2_Click(object sender, EventArgs e)
{
    Encoding win1251 = Encoding.GetEncoding(1251);
    
    string str;
    using (var reader = new StreamReader(Form1.filename, win1251))
    {
        str = reader.ReadToEnd();
    }
    
    str = str.Replace("111", "123");
    
    using (var writer = new StreamWriter(Form1.filename, false, win1251))
    {
        writer.Write(str);
    }
    
    MessageBox.Show("Работа выполнена успешно!");
    this.Close();
}
Или так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
private void button2_Click(object sender, EventArgs e)
{
    Encoding win1251 = Encoding.GetEncoding(1251);
    
    string str = File.ReadAllText(Form1.filename, win1251);
    
    str = Str.Replace("111", "123");
    
    File.WriteAllText(Form1.filename, str, win1251);
    
    MessageBox.Show("Работа выполнена успешно!");
    this.Close();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.05.2014, 14:50
Помогаю со студенческими работами здесь

Как задать кодировку для файла?
<?php header('Content-Type: text/html; charset= utf-8'); ini_set('display_errors','On'); error_reporting('E_ALL'); $login = $_POST;...

Как изменить кодировку символов с Windows-1251 на UTF-8?
Здравствуйте. Не давно начал изучать HTML, XHTML, CSS. Столкнулся с небольшой проблемой. Изучаю по книге, по ходу чтения там идёт...

Перекодировать строку из кодировки KOI в кодировку Windows-1251 и обратно
Кодировщик. Написать программу, перекодирующую строку в кодировке KOI в строку в кодировке Windows-1251 и обратно. написать...

Можно ли изменить кодировку Windows-1251 на Utf-8 при помощи Cmd.exe?
В бух.7.7 создал файл.txt, нужно сохранить его в utf-8. Средства 1с77 позволяют менять кодовую страницу только WIN либо DOS. Можно ли...

Как в iframe задать кодировку для текстового файла, на который он ссылается
Есть тег iframe, который ссылается на текстовый файл. В текстовом файле есть русский текст. Он отображается не корректно. Как дать iframe-у...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Проблемы с Kotlin и Wasm при создании игры
GameUnited 03.07.2025
В современном мире разработки игр выбор технологии - это зачастую балансирование между удобством разработки, переносимостью и производительностью. Когда я решил создать свою первую веб-игру, мой. . .
Создаем микросервисы с Go и Kubernetes
golander 02.07.2025
Когда я только начинал с микросервисами, все спорили о том, какой язык юзать. Сейчас Go (или Golang) фактически захватил эту нишу. И вот почему этот язык настолько заходит для этих задач: . . .
C++23, квантовые вычисления и взаимодействие с Q#
bytestream 02.07.2025
Я всегда с некоторым скептицизмом относился к громким заявлениям о революциях в IT, но квантовые вычисления - это тот случай, когда революция действительно происходит прямо у нас на глазах. Последние. . .
Вот в чем сила LM.
Hrethgir 02.07.2025
как на английском будет “обслуживание“ Слово «обслуживание» на английском языке может переводиться несколькими способами в зависимости от контекста: * **Service** — самый распространённый. . .
Использование Keycloak со Spring Boot и интеграция Identity Provider
Javaican 01.07.2025
Два года назад я получил задачу, которая сначала показалась тривиальной: интегрировать корпоративную аутентификацию в микросервисную архитектуру. На тот момент у нас было семь Spring Boot приложений,. . .
Содержание темы с примерами на WebGL
8Observer8 01.07.2025
Все примеры из книги Мацуды и Ли в песочнице JSFiddle Пример выводит точку красного цвета размером 10 пикселей на WebGL 1. 0 и 2. 0 WebGL 1. 0. Передача координаты точки из главной программы в. . .
Основы WebGL. Простой треугольник
8Observer8 01.07.2025
Простой треугольник без трансформаций. Для трансформаций можно использовать glMatrix, как в примере: https:/ / plnkr. co/ edit/ qT6ZTwvncLPRamK5?preview На русском: . . .
Полиглотные микросервисы на C# и .NET
ArchitectMsa 30.06.2025
Полиглотная архитектура появилась не из желания усложнить жизнь разработчикам. Она родилась из практической необходимости решать разные задачи наиболее эффективным способом. В одном из проектов. . .
Стратегии кеширования
Javaican 29.06.2025
Кеширование — это хранение часто запрашиваемых данных в быстром хранилище (обычно в памяти), чтобы не обращаться к более медленному первоисточнику. Казалось бы, все просто. Но за этой простотой. . .
Наблюдаемость приложений ASP.NET Core с OpenTelemetry, Prometheus и Grafana
ArchitectMsa 29.06.2025
Наблюдаемость (observability) – это ключевое свойство современной системы, позволяющее понимать её внутреннее состояние на основе внешних данных. Если мониторинг отвечает на вопрос "что случилось?",. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru