about summary refs log tree commit diff
path: root/Puny.cs
blob: f6be5f3e08c9c6e9902f2c725ca11635c0cb2269 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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.");
    }
}