84 votes

Liste des caractères valides pour l'identificateur de fragment dans une URL?

Je suis à l'aide de l'identificateur de fragment de créer un lien permanent pour AJAX événements dans mon application web semblables à ce mec. Quelque chose comme:

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

J'ai fait un peu de recherche, mais ne peut pas trouver une liste des caractères valides pour le fragment idenitifer. Le W3C spec ne pas offrir quelque chose.

Ai-je besoin pour coder les caractères de la même que l'URL a en général?

Il ne semble pas être une bonne information sur ce, n'importe où.

95voto

Artefacto Points 50896

Voir la RFC 3986.

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

De sorte que vous pouvez utiliser !, $, &, ', (, ), *, +, ,, ;, =, quelque chose de correspondance %[0-9a-fA-F]{2}, quelque chose d'appariement [a-zA-Z0-9], -, ., _, ~, :, @, /, et ?

30voto

KennyTM Points 232647

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

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

et

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

Donc, combinés, le fragment ne peut pas contenir #, une brute %, ^, [, ], {, }, \, ", < et > selon la RFC.

1voto

sirkazey Points 1

Un autre RFC parler de cela: la RFC 1738

URL schemeparts for ip based protocols:
HTTP

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X