C# Decode cyrilic url

Получить user frendly строку из закодированного (для DNS сервера) кириллического урла.
Пример 1:
string res = GetCyrillicUrl(“http://xn--80abucjiibhv9a.xn--p1ai/%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D0%B5%D1%80%D1%81%D1%82%D0%B2%D0%BE”);
Console.WriteLine(res);// Output: http://минобрнауки.рф/министерство

Пример 2:
string res = GetCyrillicUrl(“https://news.mail.ru/politics/24609563/?frommail=1”);
Console.WriteLine(res);// Output: https://news.mail.ru/politics/24609563/?frommail=1

using System;
System.Globalization;

string GetCyrillicUrl(string url)
{
     Uri uri = new Uri(url);
     IdnMapping idn = new IdnMapping();
     string host = idn.GetUnicode(uri.Host);
     string query = HttpUtility.UrlDecode(uri.Query);
     return uri.Scheme + @"://" + host + uri.LocalPath + query;
}

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

7 − 4 =