以下代码:
context.Response.Write(
context.Request.Url.AbsolutePath
+ "\n" + Uri.UnescapeDataString(context.Request.Url.AbsolutePath)
+ "\n" + context.Server.UrlDecode(context.Request.Url.AbsolutePath)
+ "\n" + HttpUtility.UrlDecode(context.Request.Url.AbsolutePath)
);
输出:
/uploads/324/d7925fa2-2d3a-4cae-ba3d-e22f48cbe55c/c/1415663111_250/regenera%20hp%20-%20c%C3%B3pia%20(2).png
/uploads/324/d7925fa2-2d3a-4cae-ba3d-e22f48cbe55c/c/1415663111_250/regenera hp - cópia (2).png
/uploads/324/d7925fa2-2d3a-4cae-ba3d-e22f48cbe55c/c/1415663111_250/regenera hp - cópia (2).png
/uploads/324/d7925fa2-2d3a-4cae-ba3d-e22f48cbe55c/c/1415663111_250/regenera hp - cópia (2).png
使用像this one这样的工具,输入/uploads/324/d7925fa2-2d3a-4cae-ba3d-e22f48cbe55c/c/1415663111_250/regenera%20hp%20-%20c%C3%B3pia%20(2).png
并按下decode,结果是:
/uploads/324/d7925fa2-2d3a-4cae-ba3d-e22f48cbe55c/c/1415663111_250/regenera hp - cópia (2).png
为什么我的URL解码尝试没有得到正确的值?
发布于 2019-08-20 21:09:29
HttpUtility.Decode
有一个重载,允许您指定编码;您需要使用该重载匹配URL最初编码的编码。
在您的情况下,看起来您需要UTF8:-
var decoded = HttpUtility.UrlDecode(url, Encoding.UTF8);
发布于 2019-08-20 20:51:53
试试这个:
System.Net.WebUtility.UrlDecode(context.Request.Url.AbsolutePath);
https://stackoverflow.com/questions/57573986
复制相似问题