В данной статье мы разберём работу с punycode. Для этого мы будем использовать класс IdnMapping.
Конвертация unicode в punycode:
using System;
using System.Globalization;
namespace Punycode
{
class Program
{
static void Main(string[] args)
{
IdnMapping idnMapping = new IdnMapping();
string punycodeDomainName = idnMapping.GetAscii("кто.рф");
Console.WriteLine(punycodeDomainName);
}
}
}
Конвертация punycode в unicode:
using System;
using System.Globalization;
namespace Punycode
{
class Program
{
static void Main(string[] args)
{
IdnMapping idnMapping = new IdnMapping();
string unicodeDomainName = idnMapping.GetUnicode("xn--j1ail.xn--p1ai");
Console.WriteLine(unicodeDomainName);
}
}
}
Также вы можете использовать перегруженные реализации методов GetAscii и GetUnicode:
GetAscii(string unicode, int startIndex)
GetUnicode(string punycode, int startIndex)
Данные методы принимают на вход строку и начало смещения, с которого необходимо преобразовывать строку.
GetAscii(string unicode, int startIndex, int count)
GetUnicode(string punycode, int startIndex, int count)
Данные методы принимают на вход строку, начало смещения и количество символов, которые необходимо использовать из исходной строки.
