about summary refs log blame commit diff
path: root/Puny.cs
blob: f6be5f3e08c9c6e9902f2c725ca11635c0cb2269 (plain) (tree)


















                                                                                   
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.");
    }
}