Url URI的所有部分是否都有非法字符?
我需要一个字符在一个字符串中分隔两个或多个URI。稍后,我将拆分字符串以分别获取每个URI 问题是我不确定该选哪个角色。这里是否有一个好的字符可以选择,它绝对不能成为URI本身的一部分?或者,URI中几乎所有字符都是允许的 我知道某些字符在URI的某些部分是非法的,但我说的是整个URI,如下所示:Url URI的所有部分是否都有非法字符?,url,uri,string-split,illegal-characters,Url,Uri,String Split,Illegal Characters,我需要一个字符在一个字符串中分隔两个或多个URI。稍后,我将拆分字符串以分别获取每个URI 问题是我不确定该选哪个角色。这里是否有一个好的字符可以选择,它绝对不能成为URI本身的一部分?或者,URI中几乎所有字符都是允许的 我知道某些字符在URI的某些部分是非法的,但我说的是整个URI,如下所示: scheme://username:password@domain.tld/path/to/file.ext?key=value#blah 我想可能是空格,虽然从技术上讲,我认为这可能是密码的一部分
scheme://username:password@domain.tld/path/to/file.ext?key=value#blah
我想可能是
空格
,虽然从技术上讲,我认为这可能是密码的一部分,或者在这种情况下它会作为%20
转义吗?任何控制字符都应该适用于此,例如TAB、FF等等
RFC3986(a)控制URI规范,该RFC规定字符限制为:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
0123456789-._~:/?#[]@!$&'()*+,;=
(当然,对于上面未列出的所有其他字符,%
编码字符)
所以,基本上,任何其他字符都可以作为分隔符
(a) RFC6874实际上增加了这一点,它与URI的IPv6部分的更改有关,并添加了一个区域标识符。由于区域ID由上面已经包含的
%
和“未保留”字符组成,因此它不会更改允许的字符集。使用制表符听起来是个好主意。我想我会试试看。如果不行,我就用空格字符。