Декодировать Base64 картинку созданную TotalCommander - C#

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

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

взял картинку, закодировал ее через TotalCommander в Base64, потом раскодировал следующим кодом
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
 
namespace Base64
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            string input = File.ReadAllText(@"D:\test\123.txt");
            
            string encoding = string.Empty;
            Stream fs = new FileStream(((@"D:\test\123.txt")), FileMode.Open);
            using (StreamReader sr = new StreamReader(fs, true))
                encoding = sr.CurrentEncoding.ToString();
            File.WriteAllText(@"D:\test\кодировка.txt", encoding);
            
            byte[] buffer = Convert.FromBase64String(input);
            string text = Encoding.UTF8.GetString(buffer); // Hello, World
            File.WriteAllText(@"D:\test\321.txt", text);
            
        }
    }

}
в файле кодировка.txt написано System.Text.UTF8Encoding. В итоге символы исказились и картинка не открылась... Помогите разобраться почему при декодировании искажаются символы?
возможно тотал коммандер как-то иначе кодирует, не так как это делается стандартными инструментами в c#. Если это так, то как тогда корректно декодировать чтобы опять получилась картинка?

Решение задачи: «Декодировать Base64 картинку созданную TotalCommander»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
 
namespace Base64
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            string input = File.ReadAllText(@"D:\test\123.txt");
            string temp = input.Replace("\r\n", "");
            File.WriteAllText(@"D:\test\temp.txt", temp);
            string input_temp = File.ReadAllText(@"D:\test\temp.txt");
            var dFB = Convert.FromBase64String(input_temp);
            File.WriteAllBytes(@"D:\test\321.jpg", dFB);
 
         }
    }
 
    
}

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


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

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

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