Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Url URI的所有部分是否都有非法字符?_Url_Uri_String Split_Illegal Characters - Fatal编程技术网

Url 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 我想可能是空格,虽然从技术上讲,我认为这可能是密码的一部分

我需要一个字符在一个字符串中分隔两个或多个URI。稍后,我将拆分字符串以分别获取每个URI

问题是我不确定该选哪个角色。这里是否有一个好的字符可以选择,它绝对不能成为URI本身的一部分?或者,URI中几乎所有字符都是允许的

我知道某些字符在URI的某些部分是非法的,但我说的是整个URI,如下所示:

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由上面已经包含的
%
和“未保留”字符组成,因此它不会更改允许的字符集。

使用制表符听起来是个好主意。我想我会试试看。如果不行,我就用空格字符。