При использовании HttpUtility из System.Web я обнаруживаю, что каждый раз, когда я вызываю метод .ParseQueryString, у меня есть специальные символы, кодирующие их эквивалентные представления в Юникоде. Я пробовал со многими различными типами кодирования, и все, кажется, дают тот же результат. Пример моего кода:
string text = "ich möchte diese Bild für andere freigeben"
var urlBuilder = new UriBuilder(url);
var query = HttpUtility.ParseQueryString(urlBuilder.Query, Encoding.UTF8);
query["text"] = text;
urlBuilder.Query = query.ToString();
string finalUrl = urlBuilder.ToString();
И строка в finalUrl
, которую я получил бы от этого, будет:
текст = Ich + т% u00f6chte + Diese + Bild + ж% u00fcr + Andere + freigeben
Я попытался использовать Encoding.UTF8
, Encoding.ASCII
и Encoding.Default
, и все они дают одинаковый результат. Что я могу сделать, чтобы достичь желаемого формата UrlEncoding:
текст = Ich %20m% C3% B6chte %20diese %20Bild %20f% C3% BCr %20andere %20freigeben
Как всегда, заблаговременно за помощь/совет!