AngleSharp by AngleSharp

<PackageReference Include="AngleSharp" Version="0.9.9.2" />

 LocaleEncodingProvider

Represents the default loader service. This class can be inherited.
using AngleSharp.Extensions; using System; using System.Collections.Generic; using System.Text; namespace AngleSharp.Services.Default { public class LocaleEncodingProvider : IEncodingProvider { private static readonly Dictionary<string, Encoding> suggestions = new Dictionary<string, Encoding>(StringComparer.OrdinalIgnoreCase) { { "ar", TextEncoding.Utf8 }, { "cy", TextEncoding.Utf8 }, { "fa", TextEncoding.Utf8 }, { "hr", TextEncoding.Utf8 }, { "kk", TextEncoding.Utf8 }, { "mk", TextEncoding.Utf8 }, { "or", TextEncoding.Utf8 }, { "ro", TextEncoding.Utf8 }, { "sr", TextEncoding.Utf8 }, { "vi", TextEncoding.Utf8 }, { "be", TextEncoding.Latin5 }, { "bg", TextEncoding.Windows1251 }, { "ru", TextEncoding.Windows1251 }, { "uk", TextEncoding.Windows1251 }, { "cs", TextEncoding.Latin2 }, { "hu", TextEncoding.Latin2 }, { "pl", TextEncoding.Latin2 }, { "sl", TextEncoding.Latin2 }, { "tr", TextEncoding.Windows1254 }, { "ku", TextEncoding.Windows1254 }, { "he", TextEncoding.Windows1255 }, { "lv", TextEncoding.Latin13 }, { "ja", TextEncoding.Utf8 }, { "ko", TextEncoding.Korean }, { "lt", TextEncoding.Windows1257 }, { "sk", TextEncoding.Windows1250 }, { "th", TextEncoding.Windows874 } }; public virtual Encoding Suggest(string locale) { if (!string.IsNullOrEmpty(locale) && locale.Length > 1) { string key = locale.Substring(0, 2); Encoding value = null; if (suggestions.TryGetValue(key, out value)) return value; if (locale.Isi("zh-cn")) return TextEncoding.Gb18030; if (locale.Isi("zh-tw")) return TextEncoding.Big5; } return TextEncoding.Windows1252; } } }