C# Кодировка Uri в WebRequest

158
21 июня 2018, 12:20

url содержит кириллицу, изначально закодированную в HEX - %20%2B%A0 и тд. Так вот если сделать WebRequest.Create(url), то в RequestUri будет декодированный url - с кириллицей, а мне нужна изначальная строка с хексом. Как этому глупому C# объяснить, что мне нужно сделать запрос по моей строке? Для примера - Internet Explorer обрабатывает url как есть, а остальные браузеры сразу декодируют кирилицу. вот мне нужно как IE

Answer 1

Вам нужны методы класса HttpUtility

var txt = "Текст на русском";
var encoded = HttpUtility.UrlEncode(txt);
Console.WriteLine($"Encoded: {encoded}");
var decoded = HttpUtility.UrlDecode(encoded);
Console.WriteLine($"Decoded: {decoded}");

Вывод:

Encoded: %d0%a2%d0%b5%d0%ba%d1%81%d1%82+%d0%bd%d0%b0+%d1%80%d1%83%d1%81%d1%81%d0%ba%d0%be%d0%bc
Decoded: Текст на русском

Для доступа к пути в самом запросе:

var req = WebRequest.Create("http://example.com?query=%d0%a2%d0%b5%d0%ba%d1%81%d1%82+%d0%bd%d0%b0");
Console.WriteLine($"original string is: {req.RequestUri.OriginalString}");
Console.WriteLine($"absolute uri is: {req.RequestUri.AbsoluteUri}");

Получим вывод

original string is: http://example.com?query=%d0%a2%d0%b5%d0%ba%d1%81%d1%82+%d0%bd%d0%b0
absolute path is: http://example.com/?query=%D0%A2%D0%B5%D0%BA%D1%81%D1%82+%D0%BD%D0%B0
READ ALSO
EntityValidationErrors при добавлении

EntityValidationErrors при добавлении

Была взята за основу готовая база данных и по ней создан контекст и модели таблицСвязал таблицы в конструкторе таблиц таким образом: countrylanguage...

236
Сохранить график Chart C# в PDF

Сохранить график Chart C# в PDF

Как сохранить график, построенный с помощью Chart в PDF формате?

157
Выборка - Linq, Entity Framework (Many-to-many)

Выборка - Linq, Entity Framework (Many-to-many)

Имеется две таблицы "CarsSet" и "MotorSet" со связью многие ко многимТретья (связывающая таблица в EF не видна)

178
c# - Спрятать MenuStrip когда курсор не находится на нем

c# - Спрятать MenuStrip когда курсор не находится на нем

Мне необходимо показывать MenuStrip только когда на него наведен курсор, а когда курсор покидает MenuStrip - прятатьКак я понял, сделать это с можно...

184