I tried using Uri.UnescapeDataString
to unescape JavaScript encoded URL. Heres the sample URL:
https://drive.google.com/open?id\u003d1n1hiV2sDFVctI8Qc9Z3EWPvEBO6KstFr\u0026usp\u003dsharing
When I tried using Uri.UnescapeDataString
in C# Interactive window, it correctly unescape the URL.
Microsoft (R) Roslyn C# Compiler version 2.8.3.63029
Loading context from 'CSharpInteractive.rsp'.
Type "#help" for more information.
> Uri.UnescapeDataString("https://drive.google.com/open?
id\u003d1n1hiV2sDFVctI8Qc9Z3EWPvEBO6KstFr\u0026usp\u003dsharing)
"https://drive.google.com/open?id=1n1hiV2sDFVctI8Qc9Z3EWPvEBO6KstFr&usp=sharing"
But in real application, it just don't want to unescape. I tried from Immediate Window.
? uri
"https://drive.google.com/open?id\\u003d1n1hiV2sDFVctI8Qc9Z3EWPvEBO6KstFr\\u0026usp\\u003dsharing"
Uri.UnescapeDataString(uri)
"https://drive.google.com/open?id\\u003d1n1hiV2sDFVctI8Qc9Z3EWPvEBO6KstFr\\u0026usp\\u003dsharing"
Solution
Below code is working for me using Newtonsoft.Json JObject
.
var json = "{\"su\": \"" + uri + "\"}";
var ss = JObject.Parse(json);
return ss["su"].Value<string>();