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

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

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

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

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

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

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

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


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

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

13   голосов , оценка 3.769 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы