gpt4 book ai didi

.net - UrlDecode 是否正确处理加号 (+)?

转载 作者:行者123 更新时间:2023-12-02 13:12:58 31 4
gpt4 key购买 nike

根据RFC 2396 ,

The plus "+", dollar "$", and comma "," characters have been added to
those in the "reserved" set, since they are treated as reserved within the query component.

事实上,在这个网站上搜索“plus + comma ,dollar $”,你就会得到

https://stackoverflow.com/search?q=plus+%2B+comma+,+dollar+ $

加号仅在不用作分隔符时才(由应用程序)进行编码。

但如others have observed ,.NET 的 UrlDecode 函数将加号转换为空格。此行为在哪里指定?

最佳答案

Where is this behavior specified?

HTML规范,奇怪的是。

UrlDecode 的命名有点误导性。

+仅代表HTML定义的application/x-www-form-urlencoded数据中的空格;也就是说,在表单 POST 提交请求正文中或在 URL 的 ?query 部分中。这是一个特例! URL 中其他地方的加号只是加号。

http://www.example.com/path+path/x?query+name=query+value

在此 URL 中,参数查询名称设置为查询值。它可以通过以 GET 表单提交此表单字段来生成:

<input name="query name" value="query value">

但是,文件夹名称实际上是路径+路径。没有空间。

因为这很令人困惑并且可能不明确,所以最好的方法始终是将空格编码为 %20。您可以在 .NET 中使用 UrlPathEncode 来做到这一点。这对于 URL 和路径的查询部分同样有效。

关于.net - UrlDecode 是否正确处理加号 (+)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2700721/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com