Как управлять кодировкой файла с помощью C# и .NET

В современном программировании работа с текстовыми файлами — это одна из самых распространённых задач. Особенно важно правильно управлять кодировками, чтобы избежать ошибок отображения символов, потери данных и проблем с совместимостью. В этой статье мы расскажем, как эффективно управлять кодировкой файлов с помощью C# и .NET, используя мощный инструмент — SautinSoft Document .NET.

Кодировка определяет, как последовательность байтов интерпретируется как символы. В современном мире существует множество кодировок: UTF-8, UTF-16, Windows-1251, ISO-8859-1 и другие. Неправильное определение или использование кодировки приводит к:

  • Некорректному отображению символов (например, искаженному кириллице или иероглифам).
  • Потере данных.
  • Ошибкам при чтении или сохранении файлов.
  • Нарушению совместимости между системами и приложениями.

Правильное управление кодировками — залог надежных и корректных текстовых приложений!

Если вы создаете решения, где важна точность отображения и обмена текстовой информацией, — не обходите стороной возможность управлять кодировками с помощью этой библиотеки. Это не только повысит стабильность ваших приложений, но и убережет вас от множества проблем, связанных с неправильной обработкой текстовых данных.

Пошаговое руководство:

  1. Добавить SautinSoft.Document из Nuget.
  2. Добавить текстовый документ.
  3. Произвести декодирование в "1251" (*вы можете использовать любую доступную кодировку*).
  4. Сохранить файл в заданной кодировке.

Полный код

using SautinSoft.Document;
using System.IO;
using System.Text;

namespace Example
{
    class Program
    {
        static void Main(string[] args)
        { 
            // Get your free trial key here:   
            // https://sautinsoft.com/start-for-free/

            Unicode();
        }
        /// <summary>
        /// Convert files using different encodings.
        /// </summary>
        /// <remarks>
        /// Details: https://sautinsoft.com/products/document/help/net/developer-guide/encodings.php
        /// </remarks>
        static void Unicode()
        {
            string inpFile = @"..\..\..\example.txt";
            string outFile = @"Result.pdf";

            // Provides access to an encoding provider for code pages that otherwise are available only in the desktop .NET Framework and .NET
            // https://learn.microsoft.com/en-us/dotnet/api/system.text.codepagesencodingprovider
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

            DocumentCore dc = DocumentCore.Load(inpFile, new TxtLoadOptions { Encoding = Encoding.GetEncoding(1251)});
            dc.Save(outFile);

            // Important for Linux: Install MS Fonts
            // sudo apt install ttf-mscorefonts-installer -y

            // Open the result for demonstration purposes.
            System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(outFile) { UseShellExecute = true });
        }
    }
}

Download

Imports SautinSoft.Document
Imports System.IO
Imports System.Text

Namespace Example
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			' Get your free trial key here:   
			' https://sautinsoft.com/start-for-free/

			Unicode()
		End Sub
		''' <summary>
		''' Convert files using different encodings.
		''' </summary>
		''' <remarks>
		''' Details: https://sautinsoft.com/products/document/help/net/developer-guide/encodings.php
		''' </remarks>
		Private Shared Sub Unicode()
			Dim inpFile As String = "..\..\..\example.txt"
			Dim outFile As String = "Result.pdf"

			' Provides access to an encoding provider for code pages that otherwise are available only in the desktop .NET Framework and .NET
			' https://learn.microsoft.com/en-us/dotnet/api/system.text.codepagesencodingprovider
			System.Text.Encoding.RegisterProvider(CodePagesEncodingProvider.Instance)

			Dim dc As DocumentCore = DocumentCore.Load(inpFile, New TxtLoadOptions With {.Encoding = System.Text.Encoding.GetEncoding(1251)})
			dc.Save(outFile)

			' Important for Linux: Install MS Fonts
			' sudo apt install ttf-mscorefonts-installer -y

			' Open the result for demonstration purposes.
			System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(outFile) With {.UseShellExecute = True})
		End Sub
	End Class
End Namespace

Download


Если вам нужен пример кода или у вас есть вопрос: напишите нам по адресу support@sautinsoft.ru или спросите в онлайн-чате (правый нижний угол этой страницы) или используйте форму ниже:



Вопросы и предложения всегда приветствуются!

Мы разрабатываем компоненты .Net с 2002 года. Мы знаем форматы PDF, DOCX, RTF, HTML, XLSX и Images. Если вам нужна помощь в создании, изменении или преобразовании документов в различных форматах, мы можем вам помочь. Мы напишем для вас любой пример кода абсолютно бесплатно.