Lyo.TextEncoding
2.0.0
dotnet add package Lyo.TextEncoding --version 2.0.0
NuGet\Install-Package Lyo.TextEncoding -Version 2.0.0
<PackageReference Include="Lyo.TextEncoding" Version="2.0.0" />
<PackageVersion Include="Lyo.TextEncoding" Version="2.0.0" />
<PackageReference Include="Lyo.TextEncoding" />
paket add Lyo.TextEncoding --version 2.0.0
#r "nuget: Lyo.TextEncoding, 2.0.0"
#:package Lyo.TextEncoding@2.0.0
#addin nuget:?package=Lyo.TextEncoding&version=2.0.0
#tool nuget:?package=Lyo.TextEncoding&version=2.0.0
Lyo.TextEncoding
Span-first binary-to-text codecs and character-set helpers for buffers, streams, and files. Two injectable services — IBinaryEncodingService and ICharsetEncodingService — sit beside static BinaryEncoding / CharsetEncoding. The namespace is Lyo.TextEncoding, so System.Text.Encoding needs no alias. Code pages come from System.Text.Encoding.CodePages. Hex casing uses TextLetterCase from Lyo.Common.Core.
Features
IBinaryEncodingService/BinaryEncoding. Hex, Base64, Base64Url. Streaming decode, MIME line wrap, PEM helpers,TryEncode/TryDecode.ICharsetEncodingService/CharsetEncoding. Resolve CodePages, convert streams sync or async,EmitBom,CharsetConvertingStream.CharsetInfo. Catalog of well-known encodings plusCustom(...). Pickers useWellKnown.- Detection. BOM, a UTF-8 heuristic, and text declarations. For non-seekable streams:
ConsumedPrefix+CreateReplayStream. - Fallbacks. Optional
EncoderFallback/DecoderFallback. BCL encodings are cloned. Singletons are never mutated. - DI.
AddLyoBinaryEncoding,AddLyoCharsetEncoding,AddLyoTextEncoding.
Examples
Wire into DI
using System.Text;
using Lyo.TextEncoding.Registration;
using Microsoft.Extensions.DependencyInjection;
var services = new ServiceCollection();
services.AddLyoTextEncoding();
using var sp = services.BuildServiceProvider();
var binary = sp.GetRequiredService<IBinaryEncodingService>();
var charset = sp.GetRequiredService<ICharsetEncodingService>();
Encoding utf8 = Encoding.UTF8; // no alias needed
Binary encode, decode, and PEM
var encoded = BinaryEncoding.Encode(BinaryEncodingKind.Base64, payload, lineLength: 76);
var pem = BinaryEncoding.EncodePem("CERTIFICATE", payload);
var bytes = BinaryEncoding.DecodePem(pem, out var label);
await BinaryEncoding.DecodeAsync(BinaryEncodingKind.Base64, textReader, binaryOut, ct);
Charset convert, detect, and a converting stream
CharsetEncoding.EnsureCodePagesRegistered();
var utf8Bytes = CharsetEncoding.Convert(winBytes, CharsetInfo.Windows1252, CharsetInfo.Utf8);
var detected = CharsetEncoding.DetectEncoding(nonSeekableStream);
using var replay = CharsetEncoding.CreateReplayStream(nonSeekableStream, detected);
using var converting = CharsetEncoding.CreateConvertingStream(sink, CharsetInfo.Windows1252, CharsetInfo.Utf8);
converting.Write(src);
Dependencies
Generated from ProjectReference / PackageReference (same model as docs/Lyo.ProjectGraph.html).
Lyo.Common.Core(direct, lyo)Lyo.Exceptions(direct, lyo)Microsoft.Extensions.DependencyInjection.Abstractions10.0.5(direct, microsoft)System.Memory4.6.3(direct, microsoft, netstandard2.0)System.Text.Encoding.CodePages10.0.5(direct, microsoft)Microsoft.Bcl.AsyncInterfaces10.0.5(transitive, microsoft, netstandard2.0)System.Text.Json10.0.5(transitive, microsoft, netstandard2.0)
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Lyo.Common.Core (>= 2.0.0)
- Lyo.Exceptions (>= 2.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.5)
- System.Memory (>= 4.6.3)
- System.Text.Encoding.CodePages (>= 10.0.5)
-
net10.0
- Lyo.Common.Core (>= 2.0.0)
- Lyo.Exceptions (>= 2.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.5)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.