Странная кодировка при чтении файла с русским текстом и бинарные файлы - C#

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

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

Доброго времени суток!

Пишу програмулину для открытия существующего .txt файла и создания его бинарной копии. Есть TextBox, 2 кнопки, save и open диалоги. Так вот, при считывании файла с русскими буквами я получаю ромбообразную непонятную кодировку. Добавил уже 1251 как параметр кодировки, всё равно не отображает русский алфавит.
        private void button1_Click(object sender, EventArgs e)
        {
            Encoding enc = Encoding.GetEncoding(1251);
            // Задание параметров диалога открытия
            openFileDialog1.Filter = "Text file|*.txt";
            openFileDialog1.Title = "Select a file to convert";
 
            // Работа диалога открытия
            if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                System.IO.StreamReader sr = new
                   System.IO.StreamReader(openFileDialog1.FileName,enc);
                //filepath = openFileDialog1.FileName;
                textBox1.Text = System.IO.File.ReadAllText(openFileDialog1.FileName);
                sr.Close();
            }
            else if (openFileDialog1.ShowDialog() == DialogResult.Cancel)
                return;
 
            //button2.Enabled = true;
        }
Результат: Также мог бы кто подсказать как содержимое TextBox-а теперь записать в бинарный файл, имя и расположение которого выбрано в save диалоге? А то бинарный поток не хочет создаваться, а я не знаю чего =(
        private void button2_Click(object sender, EventArgs e)
        {
            saveFileDialog1.Filter = "Text File|*.txt";
            saveFileDialog1.Title = "Save the converted Binary File";
            saveFileDialog1.ShowDialog();
            saveFileDialog1.CreatePrompt = true;
            saveFileDialog1.OverwritePrompt = true;
 
            if (saveFileDialog1.FileName != "")
            {
                System.IO.BinaryWriter bw =
                   (System.IO.BinaryWriter)saveFileDialog1.OpenFile(); // ошибка преобразования System.IO.Stream в System.IO.BinaryWriter
                
                //////////////
                // запись содержимого textbox в файл
                //////////////
 
                bw.Close();
            }

Решение задачи: «Странная кодировка при чтении файла с русским текстом и бинарные файлы»

textual
Листинг программы
textBox1.Text = System.IO.File.ReadAllText(openFileDialog1.FileName, Encoding.Default);

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


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

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

13   голосов , оценка 3.769 из 5
Похожие ответы