C#百分比解码

标签 c# urlencode

我正在尝试解码从 PHP 脚本传递到我的 C# 应用程序的百分比编码字符串。 PHP 对数据进行了加密,因此我对许多特殊字符进行了百分比编码。

这是我在 URL 中传递的字符串:

%C9%90%04L%EFEA%D1U%AFi%CBc%3A%E5%D0%40Q%D6%1Bn%C9%C3%B5%0FT%FC%E5h%95m%EF%BF%24tB%A6%D1%08%3B%83%A1%CF%1B%99Zo%02

但是它的部分解码有问题:当我获取查询字符串时,像这样:

var queryString = HttpContext.Current.Request.QueryString;
var token = queryString["token"];

不过,变量 token 等于:

%C9%90%04L%EF%BF%BDEA%EF%BF%BDU%EF%BF%BDI%EF%BF%BDC%3A%EF%BF%BD%EF%BF%BD%40Q%EF%BF%BD%1BN%EF%BF%BD%C3%B5%0FT%EF%BF%BD%EF%BF%BDH%EF%BF%BDM%EF%BF%BD%24TB%EF%BF%BD%EF%BF%BD%08%3B%EF%BF%BD%EF%BF%BD%EF%BF%BD%1B%EF%BF%BDZO%02

这绝对不是我放入查询字符串中的内容。查看它时,它第一次弄乱是 %EF(从第 11 个字符开始到原始查询字符串中)。它显示的不是 %EF:%EF%BF%BD。当我稍作搜索时,我找到了 this webpage其中表示“十六进制 UTF-8 字节”是 EF BF BD。

编辑:

忘记说了,QueryString 是这样的:

token=%c9%90%04L%ef%bf%bdEA%ef%bf%bdU%ef%bf%bdi%ef%bf%bdc%3a%ef%bf%bd%ef%bf%bd%40Q%ef%bf%bd%1bn%ef%bf%bd%c3%b5%0fT%ef%bf%bd%ef%bf%bdh%ef%bf%bdm%ef%bf%bd%24tB%ef%bf%bd%ef%bf%bd%08%3b%ef%bf%bd%ef%bf%bd%ef%bf%bd%1b%ef%bf%bdZo%02&oauth_token_secret=S%23%2bw%ef%bf%bd%ef%bf%bdX%17%ef%bf%bd0%ef%bf%bd%60%ef%bf%bd%ef%bf%bd%ef%bf%bd%ef%bf%bd*%ef%bf%bdi%08%ef%bf%bd%ef%bf%bd%ef%bf%bd%ef%bf%bd%07%ef%bf%bd%12RS07%ef%bf%bdgl%1e%ef%bf%bd%d7%832%d1%a1%ef%bf%bd%275%ef%bf%bdv%ef%bf%bd

最佳答案

您可能正在寻找 HttpServerUtility.UrlDecode method :

HttpContext.Current.Server.UrlDecode(HttpContext.Current.Request.QueryString["token"]);

关于C#百分比解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35343146/

相关文章:

utf-8 - 如何解码包含阿拉伯字符的(百分比编码 URL)?

iphone - CFURLCreateStringByAddingPercentEscapes,奇怪的行为?

c# - 以编程方式关闭 Excel 中的工作簿

c# - HttpClient PostAsync 发布空内容

c# - 保证变量的最新值始终对多处理器系统上的多个线程可见

c# - 如何通过主机中的软件中止已建立的连接的消息找到 SocketException 的原因和原因?

Java 相当于 Pythons urllib.urlencode(基于 HashMap 的 UrlEncode)

c# - 使用 NameValueCollection 将 QueryString 转换为 URL-Encode

json - OAuth2 中 token 请求的内容类型

c# - 在 C# 中实现响应式编程/函数