NuGet Package ExtString_ConvertAccents.vb

VB.NET source file that contains an extension method that replaces accented characters within a string through non-accented ones, which is useful to create logon names, email addresses etc.

German upper-case umlauts like "Ä" are converted either to "Ae" or "AE" depending the context, "ß" analogously may become "ss" or "SS".

There is support for a lot of western characters, but as I am no linguist it might contain some errors as e.g. I as a Swiss am not sure whether an Islandic/Faroese "ð" should be converted to a "d", "dh" or a "th"...

See also NuGet-package "SingleFile.VB.ExtString.RemoveUnwantedChars" to remove unsupported characters after substituting the accented ones.

Supported versions:
.NET Framework 3.5
.NET Framework 4.0
.NET Framework 4.5
.NET Framework 4.5.1
.NET Framework 4.5.2
.NET Framework 4.6
.NET Framework 4.6.1

Language requirement:
Visual Basic 9 (shipped in 2007 with .NET 3.5)

This package is part of the "SingleFile.VB" collection that consists of small utilities in the form of VB.NET source files, usually two of them per package, namely the code file and the test file (Microsoft standard unit tests) as well as the license files that are shared over all "Single.VB" packages.

Some philosophy:

Extension methods and other static utility functions are not shared accross projects resp. assemblies but included wherever they are needed. For that reason they are declared "Friend" and namespace-less as they are supposed to be part of the project's current namespace.

Unit test files are added directly to the project and declared "Public" because of limitations of that framework, but they are only compiled in debug mode (through a compiler directive that checks for the "DEBUG" keyword).

This allows to keep the tests very near to the code which simplifies access to internal members but does not bulk the published version. The reference to "Microsoft.​VisualStudio.​TestTools.​UnitTesting" (assembly "Microsoft.​VisualStudio.​QualityTools.​UnitTestFramework.dll") is only needed during development and may be declared with "Copy Local = False".

The NuGet package version is global across all "Single.VB" packages, and they always reference other packages of the same version (most recent at the time of publishing). This greatly simplifies my dependency handling and therefore improves the quality of the NuGet packages, but may leed to an updated package that does not contain any code change. I apologize for that inconvenience.

Your feedback and/or contribution is welcome.

Please contact me on

Got any ExtString_ConvertAccents.vb Question?


Version: 1.0.25
Author(s): Christoph Hafner (project owner) and the community (contributions)
Last Update: Thursday, January 21, 2016
.NET Fiddle: Create the first Fiddle
NuGet Url:

Install-Package SingleFile.VB.ExtString.ConvertAccents
dotnet add package SingleFile.VB.ExtString.ConvertAccents
paket add SingleFile.VB.ExtString.ConvertAccents
SingleFile.VB.ExtString.ConvertAccents Download (Unzip the "nupkg" after downloading)