web-dev-qa-db-ja.com

URLのフラグメント識別子の有効な文字のリスト?

私はフラグメント識別子を使用して、AJAX Webアプリのイベント この男に似ています 。のパーマリンクを作成しています。

http://www.myapp.com/calendar#filter:year/2010/month/5

かなりの検索を行いましたが、フラグメントidenitiferの有効な文字のリストが見つかりません。 W3C仕様 は何も提供しません。

一般に持っているURLと同じ文字をエンコードする必要がありますか?

これに関する良い情報はどこにもありません。

84
sohtimsso1970

RFC 3986 を参照してください。

fragment    = *( pchar / "/" / "?" )
pchar         = unreserved / pct-encoded / sub-delims / ":" / "@"    
unreserved    = ALPHA / DIGIT / "-" / "." / "_" / "~"
pct-encoded   = "%" HEXDIG HEXDIG
sub-delims    = "!" / "$" / "&" / "'" / "(" / ")"
                 / "*" / "+" / "," / ";" / "="

したがって、!$&'()*+,;=、何かに一致する%[0-9a-fA-F]{2}、何かに一致する[a-zA-Z0-9]-._~:@/、および?

96
Artefacto

http://tools.ietf.org/html/rfc3986#section-3.5

fragment    = *( pchar / "/" / "?" )

そして

pchar         = unreserved / pct-encoded / sub-delims / ":" / "@"
unreserved    = ALPHA / DIGIT / "-" / "." / "_" / "~"
sub-delims    = "!" / "$" / "&" / "'" / "(" / ")"
              / "*" / "+" / "," / ";" / "="
pct-encoded   = "%" HEXDIG HEXDIG

そのため、結合したフラグメントcannotには#、生の%^[]{}\"<および> RFCによると。

30
kennytm

他のRFCはそれについて述べています: RFC-1738

URL schemeparts for ip based protocols:
HTTP

httpurl        = "http://" hostport [ "/" hpath [ "?" search ]]
hpath          = hsegment *[ "/" hsegment ]
hsegment       = *[ uchar | ";" | ":" | "@" | "&" | "=" ]
search         = *[ uchar | ";" | ":" | "@" | "&" | "=" ]
1
sirkazey