我的URI包含##
(例如http://foo.com/bar##baz
)。當我嘗試解析它時,Ruby的URI.parse
函數會引發錯誤。具有雙重散列(##)的URI是無效的嗎?
是否在URI中禁止使用雙重哈希標記?還是Ruby分析器太嚴格了?
我的URI包含##
(例如http://foo.com/bar##baz
)。當我嘗試解析它時,Ruby的URI.parse
函數會引發錯誤。具有雙重散列(##)的URI是無效的嗎?
是否在URI中禁止使用雙重哈希標記?還是Ruby分析器太嚴格了?
Fragment Identifiers可能不包含散列符號。解析器是正確的。
一個片段標識符的語法定義如下:
fragment = *(pchar/"/"/"?")
pchar = unreserved/pct-encoded/sub-delims/":"/"@"
unreserved
,pct-encoded
和sub-delims
被定義爲:
unreserved = ALPHA/DIGIT/"-"/"."/"_"/"~"
pct-encoded = "%" HEXDIG HEXDIG
sub-delims = "!"/"$"/"&"/"'"/"("/")"/"*"/"+"/","/";"/"="
可能與此規範的引用+1有關。 –
它們無效。 A #
指示其餘部分是片段,並且片段可能不具有其中的#
。
尋址允許它:
require 'addressable/uri'
Addressable::URI.parse('http://foo.com/bar##baz').fragment
#=> "#baz"
尋址是應該更符合rfc的,但wko知道。我會說這是受解釋。
[URL中的多個片段標識符正確嗎?](http://stackoverflow.com/questions/4714268/multiple-fragment-identifiers-correct-in-url) – Gumbo