Table of Contents

EncodingOptionsExtensions Class

Definition

Namespace
Cuemon.Extensions.Text
Assemblies
Cuemon.Extensions.Text.dll
Source
src/Cuemon.Extensions.Text/EncodingOptionsExtensions.cs

Extension methods for the IEncodingOptions interface.

public static class EncodingOptionsExtensions
Inheritance
object
EncodingOptionsExtensions

Examples

The following example demonstrates detecting the Unicode encoding of a byte array or stream using the DetectUnicodeEncoding and DetectUnicodeEncoding extension methods.

using System;
using System.IO;
using System.Text;
using Cuemon.Extensions.Text;
using Cuemon.Text;

namespace MyApp.Examples;

public class EncodingOptionsExtensionsExample
{
    public static void Main()
    {
        // Create an EncodingOptions instance with a fallback encoding
        var options = new EncodingOptions { Encoding = Encoding.UTF8 };

        // Byte array with UTF-8 BOM
        byte[] utf8WithBom = { 0xEF, 0xBB, 0xBF, 0x48, 0x65, 0x6C, 0x6C, 0x6F };

        // Detect encoding from bytes
        Encoding detected = options.DetectUnicodeEncoding(utf8WithBom);
        Console.WriteLine($"Detected encoding from bytes: {detected.EncodingName}");

        // Stream with UTF-16 LE BOM
        using var stream = new MemoryStream();
        byte[] utf16Bom = { 0xFF, 0xFE, 0x48, 0x00, 0x65, 0x00, 0x6C, 0x00 };
        stream.Write(utf16Bom, 0, utf16Bom.Length);
        stream.Position = 0;

        Encoding streamEncoding = options.DetectUnicodeEncoding(stream);
        Console.WriteLine($"Detected encoding from stream: {streamEncoding.EncodingName}");

        // When no BOM is present, the fallback encoding is returned
        byte[] noBom = { 0x48, 0x65, 0x6C, 0x6C, 0x6F };
        Encoding fallback = options.DetectUnicodeEncoding(noBom);
        Console.WriteLine($"Fallback encoding: {fallback.EncodingName}");

}
}

Methods

Name Description
DetectUnicodeEncoding(IEncodingOptions, byte[])

Tries to detect an Encoding object from the specified bytes. If unsuccessful, the Encoding value is returned.

DetectUnicodeEncoding(IEncodingOptions, Stream)

Tries to detect an Encoding object from the specified stream. If unsuccessful, the Encoding value is returned.