Encoding

NuGet Status Maven Central

Download source code: ZIP file


A portable library in C# and Java that implements character encodings used in Web pages and email.

It implements the Encoding Standard, which is currently a candidate recommendation at the time of this writing.

How to Install

The C# implementation is available in the NuGet Package Gallery under the name PeterO.Encoding. To install this library as a NuGet package, enter Install-Package PeterO.Encoding in the NuGet Package Manager Console.

The Java implementation is available as an artifact in the Central Repository. To add this library to a Maven project, add the following to the dependencies section in your pom.xml file:

<dependency>
  <groupId>com.github.peteroupc</groupId>
  <artifactId>encoding</artifactId>
  <version>0.6.0</version>
</dependency>

In other Java-based environments, the library can be referred to by its group ID (com.github.peteroupc), artifact ID (encoding), and version, as given above.

Documentation

See the Java API documentation.

See the C# (.NET) API documentation.

Examples

In C#.

// Reads text from a UTF-8/UTF-16/UTF-32 file public static string ReadTextFromFile(string filename) { using (var stream = new FileStream(filename, FileMode.Open)) { return new CharacterReader(stream, 2).InputToString(); } }

// Reads text from a SHIFT-JIS stream, but uses UTF-8/UTF-16 // instead if it detects byte order marks using (var stream = new FileStream(filename, FileMode.Open)) { return Encodings.GetEncoding("shift_jis") .GetDecoderInputSkipBom(stream).InputToString(); }

// Writes text in UTF-8 to a file using (var stream = new FileStream(filename, FileMode.Create)) { var str="Hello world!" str.EncodeToWriter(Encodings.UTF8,stream); }

History

Version 0.6.0:

Version 0.5.1:

Version 0.5.0:

Version 0.4.0:

Version 0.3.2:

Version 0.3.1:

Version 0.3:

Version 0.2.1:

Version 0.2.0:

Version 0.1.0:

About

Written by Peter O.

Any copyright to this work is released to the Public Domain. In case this is not possible, this work is also licensed under the Unlicense: https://unlicense.org/