如何使用.NET库
问题描述:
我需要编码字符串,这样使用标准库来编码字符串: “{some-string.for#encode}
”到“如预期%7bsome%2dstring%2efor%23encode%7d"
如何使用.NET库
HttpUtility.UrlDecode("{some-string.for#encode}")
不工作,回报:
“%7bsome-string.for%23encode%7D”
答
之所以-
和.
没有被编码是section 2.3 of rfc3986明确允许他们作为“未保留”的字符。同样地,没有标准符合百分比编码器将做这,完全相同的原因,他们不编码“一些”(即也部分2.3,通过标签ALPHA
)。所以:如果你不打算遵循规范,你将不得不自己编写编码器。
好:*为什么*你需要编码的其他字符?像'-'和'.'这样的东西都不是*保留的,所以应该不需要%编码它们。如果你已经玩过不合规格,为什么不编码*每个*字符? –