You can use the UnicodeInformation library you mention to achieve that. It gives you all the information you need so you can create your own helper class to do the reverse mapping.
Here is an sample class:
public static class UnicodeName
{
private static Dictionary<string, string> nameDisplayTextDictionary =
UnicodeInfo.GetBlocks().SelectMany((block) => block.CodePointRange).Select(codePoint => UnicodeInfo.GetCharInfo(codePoint)) // select all character infos
.Where(charInfo => charInfo.Name != null) // filter out the ones that have null names
.ToDictionary(charinfo => charinfo.Name, charInfo => charInfo.GetDisplayText()); // create lookup dictionary to get the display text from the name
public static string GetDisplayText(string unicodeName)
{
if (nameDisplayTextDictionary.ContainsKey(unicodeName))
{
return nameDisplayTextDictionary[unicodeName];
}
else
{
throw new Exception($"Unknown unicode name {unicodeName}");
}
}
}
You can then use it the way you want.
string displayText = UnicodeName.GetDisplayText("EURO SIGN");
The method returns a string because in some cases the return is not a single character.