通用 URL 解码函数应该处理“+”字符还是只处理“%20”等字符?

Should Generic URL Decoding Functions Handle "+" Chars or Just "%20" etc. Chars?

我想知道通用 URL 解码函数是否应该处理“+”字符 (space) 除了所有例如“%20”等编码?

目前还没有具体的用例。

是否有适合此处参考的规范?

我在 VBScript 中这样做(但我认为这与我的问题无关)并且我有两个版本,一个可以处理“+”,方法是将其替换为“</code>”(space)...</p> <pre><code>Public Function decode(s) s = replace(s, "+", " ") For i = 1 To Len(s) If Mid(s, i, 1) = "%" Then decode = decode & Chr("&H" & Mid(s, i+1, 2)) i = i + 2 Else decode = decode & Mid(s, i, 1) End If Next End Function

...还有一个没有:

Public Function decode(s)
    For i = 1 To Len(s)
        If Mid(s, i, 1) = "%" Then
            decode = decode & Chr("&H" & Mid(s, i+1, 2))
            i = i + 2
        Else
            decode = decode & Mid(s, i, 1)
        End If
    Next
End Function

如果它应该是通用的:不。 “+”的作用非常特定于 HTML 表单,与通用 URI 处理无关。