通用 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 处理无关。
我想知道通用 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 处理无关。