Homoglyphic 1.0.0
See the version list below for details.
dotnet add package Homoglyphic --version 1.0.0
NuGet\Install-Package Homoglyphic -Version 1.0.0
<PackageReference Include="Homoglyphic" Version="1.0.0" />
paket add Homoglyphic --version 1.0.0
#r "nuget: Homoglyphic, 1.0.0"
// Install Homoglyphic as a Cake Addin #addin nuget:?package=Homoglyphic&version=1.0.0 // Install Homoglyphic as a Cake Tool #tool nuget:?package=Homoglyphic&version=1.0.0
<img src="https://github.com/AlanRVA/Homoglyphic/blob/master/logo.svg" height="75" align="left" />
Homoglyphic
<br/>
A .net Standard 2/C# library for converting homoglyphs (characters that look identical or similar but have different unicode values) to their common look-alike characters.
Homoglyphic makes it easy to convert unicode characters to the most common characters they resemble. Useful for simplifying spam/phishing detection, content moderation and scrubbing text used for training ML models.
The list of homogylphys in this project was sourced from https://github.com/codebox/homoglyph/tree/master/raw_data/char_codes.txt
Usage
Homoglyphic consists of two main classes, the HomoglyphicLoader and HomoglyphicReplacer.
The HomoglyphicLoader accepts the file path to a CSV file of homoglyphic character sets and returns an array of HomogylphPair ojbects, one for each look-alike character.
The HomogylphPair class contains the base character and the UnicodePoint of a character which resembles the base character.
Once you have your array of HomogylphPairs, you can then use it to create an instance of the HomoglyphicReplacer class which has a single function: Replace, which replaces any look-alike characters in the input string with their base character and returns the normalized version of that string.
var pairs = HomoglyphLoader.LoadPairs("homoglyphs.csv");
var replacer = new HomoglyphReplacer(pairs);
var normalizedString = replacer.Replace("⟙hiƽ ƽtring containƽ һomoglyphƽ");
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. |
.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
- 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.
Initial release