Ich arbeite an einer asp.net mvc-Webanwendung. Ich habe nun einen Wert für das Betriebssystem, die gleich: -UriBuilder kann UriBuilder-registriertes Zeichen nicht codieren
und ich bin mit dem folgenden Code eine URL mit dem obigen Wert wie folgt aufzubauen: -
var query = HttpUtility.ParseQueryString(string.Empty);
query["osName"] = OperatingSystem;
var url = new UriBuilder(apiurl);
url.Query = query.ToString();
string xml = client.DownloadString(url.ToString());
aber die erzeugte uRL wird den folgenden Wert für das Betriebssystem enthalten: -
osName=Microsoft%u00ae+Windows+Server%u00ae+2008+Standard
so die UriBuilder das eingetragene Zeichen alskodierenwas ist falsch seit, wenn ich versuche, die mit Online-Site wie http://meyerweb.com/eric/tools/dencoder/ zu entschlüsseln wird es nicht %u00ae+
als Register Zeichen decodieren ??? also kann jemand bitte auf diesem bitte, wie ich das registrierte Zeichen in meiner URL senden kann? Ist das ein Problem in UrilBuilder?
Dank
EDIT Das wird mein Problem deutlich machen .. jetzt passieren i der Asset-Name £ ££££££ jetzt die Abfrage [ "ASSETNAME"] valueas den korrekten Wert erhalten .. aber innerhalb der Abfrage wird der Wert falsch codiert (wird nicht mit UTF8 kodiert) !!!
Zugabe kann aber Sie beraten, was ist das Problem in meinem Fall? –
Um eine korrekte URL (RFC3986-Standard) zu erstellen, sollten Sie [Uri.EscapeDataString] (https://msdn.microsoft.com/en-us/library/system.uri.escapedatastring.aspx) verwenden, ansonsten werden spezielle Unicode-Zeichen verwendet Standardmäßig codiert wie in Ihrer Frage. –
Aber wenn ich "url.Query = query.ToString();" mit "Uri.EscapeUriString (HttpUtility.UrlDecode (query.ToString()));" werde ich irgendwelche Probleme haben ?? ... scheint jetzt mit "Uri.EscapeUriString (HttpUtility.UrlDecode (query.ToString()));" wird mein Problem für das "registrierte Zeichen" beheben, aber es wird dazu führen, dass andere Zeichen fehlschlagen ... –