puny/Puny.cs

19 lines
580 B
C#

string ShowCodePoints(string str1) =>
str1.Aggregate("", (current, ch) => current + $"U+{Convert.ToUInt16(ch):X4} ");
var idn = new IdnMapping();
foreach (var name in args)
{
try
{
var puny = idn.GetAscii(name);
var name2 = idn.GetUnicode(puny);
Console.WriteLine($"{name} --> {puny} --> {name2}");
Console.WriteLine($"Original: {ShowCodePoints(name)}");
Console.WriteLine($"Restored: {ShowCodePoints(name2)}");
}
catch (ArgumentException)
{
Console.WriteLine($"{name} is not a valid domain name.");
}
}