MagicFileEncoding 2.0.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package MagicFileEncoding --version 2.0.1                
NuGet\Install-Package MagicFileEncoding -Version 2.0.1                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MagicFileEncoding" Version="2.0.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add MagicFileEncoding --version 2.0.1                
#r "nuget: MagicFileEncoding, 2.0.1"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install MagicFileEncoding as a Cake Addin
#addin nuget:?package=MagicFileEncoding&version=2.0.1

// Install MagicFileEncoding as a Cake Tool
#tool nuget:?package=MagicFileEncoding&version=2.0.1                

Magic File Encoding

NuGet Downloads Actions Status GitHub

The Magic File Encoding Library is a powerful tool designed to assist you in loading and transforming simple and closed scope character set text files. Whether you're working with EDIFACT files or similar text formats, this library provides a comprehensive solution to handle various encoding scenarios effortlessly.

Transformation Considerations

When performing encoding transformations, it is important to be mindful of potential issues that may arise if the target encoding is simpler than the source encoding. Certain characters or language-specific symbols in the source encoding may not be accurately represented or fully preserved in the target encoding.

Thorough testing and validation are recommended to ensure the desired outcome during the transformation process.

Fallback Encoding

The Magic File Encoding Library incorporates a fallback encoding system. By default, it uses ISO-8859-1 (Latin-1) as the fallback encoding. This fallback encoding is specifically designed to cater to the encoding requirements within the German cultural space.

However, it provides the flexibility to modify the fallback encoding through an optional method argument, enabling adaptation to different encoding needs like UTF-8 fallbacks.

Usage

Filesystem

Read a text file
string text = FileEncoding.ReadAllText(filePath);
// or 
string text = FileEncoding.ReadAllText(filePath, Encoding.Unicode);
Write a text file
FileEncoding.WriteAllText(tmpFile.Path, text, Encoding.UTF8);
Just detect suitable encoding for a given file
Encoding encoding = FileEncoding.GetAcceptableEncoding(filename);

Byte Array

Byte array to string
string text = FileEncoding.ReadAllBytes(byteArray);
// Or
string text = FileEncoding.ReadAllBytes(byteArray, Encoding.Unicode);
Just detect suitable encoding for a given byte array
Encoding encoding = FileEncoding.GetAcceptableEncoding(byteArray);

Nuget Package

MagicFileEncoding at nuget.org

Versioning & Breaking Changes

Major.Minor.Patch-Suffix

  • Major: Breaking changes
  • Minor: New features, but backwards compatible
  • Patch: Backwards compatible bug fixes only
  • -Suffix (optional): a hyphen followed by a string denoting a pre-release version

See: https://docs.microsoft.com/en-us/nuget/concepts/package-versioning

Credits

This work is heavily based on the following stack overflow and web articles:<br /> determine-a-strings-encoding-in-c-sharp <br /> check-for-invalid-utf8 <br /> how-to-detect-utf-8-in-plain-c <br /> strip-byte-order-mark-from-string-in-c-sharp <br /> what-is-the-most-common-encoding-of-each-language <br /> utf-bom4

Contributions and Support

Contributions to the Magic File Encoding Library are welcome! If you encounter any issues, have suggestions for improvements, or would like to contribute to its development, please visit our GitHub repository.

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net6.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.0.0 3,675 2/5/2024
2.0.1 4,345 6/10/2023
2.0.0 425 5/25/2023
1.1.1 1,495 2/13/2021
1.1.0 329 2/13/2021
1.0.0 477 9/28/2020
1.0.0-preview.3 252 9/28/2020
1.0.0-preview.2 286 9/27/2020
1.0.0-preview 346 9/27/2020