- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
当使用 System.Web 中的 HttpUtility 时,我发现每次调用 .ParseQueryString 方法时,我都会将特殊字符编码为其 unicode 等效表示。我尝试过许多不同的编码类型,似乎都产生了相同的结果。我的代码示例如下:
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
中的字符串是:
text=ich+m%u00f6chte+diese+Bild+f%u00fcr+andere+freigeben
我尝试过使用 Encoding.UTF8
、Encoding.ASCII
和 Encoding.Default
,它们都产生相同的结果。我该怎么做才能达到我想要的 UrlEncoding 格式:
text=ich%20m%C3%B6chte%20diese%20Bild%20f%C3%BCr%20andere%20freigeben
一如既往,提前感谢您的帮助/建议!
最佳答案
问题出在:
urlBuilder.Query = query.ToString();
HttpUtility.ParseQueryString
返回一个 NameValueCollection
但实际上是一个名为 HttpValueCollection
的内部类。此类重写了 ToString()
方法。它生成一个编码的查询字符串,但对于它的 URL 编码,它使用 HttpUtility.UrlEncodeUnicode
(tinyurl.com/HttpValue)。这导致 %uXXXX 值。
如果您需要不同类型的 URL 编码,您可能希望避免 HttpUtility.ParseQueryString
或解码 ToString()
的结果并在之后对其进行编码:
urlBuilder.Query = Uri.EscapeUriString(HttpUtility.UrlDecode(query.ToString()));
关于c# - HttpUtility.ParseQueryString() 总是将特殊字符编码为 unicode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26789168/
我正在尝试提取带有 + 特殊字符的电子邮件,但由于某种原因 ParseQueryString 跳过它: namespace ParsingProblem { class Pro
有人能给我解释一下 ParseQueryString 的这种行为吗: var qs = HttpUtility.ParseQueryString("/Site/controller/Index?dat
Uri uri = new Uri(redirectionUrl); NameValueCollection col = HttpUtility.ParseQueryString(uri.Query)
.Net的System.Web.HttpUtility类定义 the following function将查询字符串解析为 NameValueCollection : public static N
这个问题在这里已经有了答案: Parse and modify a query string in .NET Core (7 个答案) 关闭 6 年前。 我正在开发一个简单的应用程序来使用这个新的出
当使用 System.Web 中的 HttpUtility 时,我发现每次调用 .ParseQueryString 方法时,我都会将特殊字符编码为其 unicode 等效表示。我尝试过许多不同的编码类
按照构建 C# 类的在线指南,并将类代码粘贴到新类中,唯一无法解析的部分是这一行: canonicalRequest.AppendFormat("{0}\n", GetCanonica
自 HttpUtility在 WinRT 中不可用,我想知道是否有一种直接的方法来解析 HTTP 查询字符串? 实际上有一些等同于 HttpUtility.ParseQueryString 的东西吗?
System.Web 或我可以使用的代码中是否包含 HttpUtility.ParseQueryString 的可移植类库 (PCL) 版本?我想读取一个非常复杂的 URL。 最佳答案 HttpUti
我正在寻找解析 URL 以获得 Java 中的查询字符串参数的集合。明确地说,我需要解析给定的 URL(或 URL 对象的字符串值),而不是来自 servlet 请求的 URL。 看起来 javax.
这个问题在这里已经有了答案: How to parse a query string into a NameValueCollection in .NET (19 个回答) 关闭 8 年前。 我希望
我在 Windows 8 应用程序中使用 HttpUtility.ParseQueryString(string) 时遇到一些问题我只是用这条线 NameValueCollection coll =
我正在尝试做的是使用 UriBuilder 和 HttpUtility.ParseQueryString 来获取用户访问的最后一个页面,然后解析 URL 以仅获取 productID。 (如果重要的话
我搜索了 SO 并发现了类似的问题,但没有一个比较这三个问题。这让我很吃惊,所以如果有人知道,请指点一下。 有许多不同的方法来解析请求的查询字符串……“正确”的方法 (IMO) 应该处理空值/缺失值,
我是一名优秀的程序员,十分优秀!