Список допустимых символов для идентификатора фрагмента в URL?

Я использую идентификатор фрагмента для создания постоянной ссылки для событий AJAX в моем веб-приложении, подобном этому парню. Что-то как:

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

Я сделал довольно мало поиска, но не могу найти список допустимых символов для фрагмента idenitifer. Спецификация W3C ничего не предлагает.

Я должен закодировать символы то же, как URL в имеет в целом?

Кажется, нет никакой хорошей информации об этом нигде.

83
задан Community 23 May 2017 в 11:54
поделиться

2 ответа

См. 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], -, . , _, ~, :, @, /, и ?

93
ответ дан 24 November 2019 в 08:55
поделиться

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

Итак, вместе фрагмент не может содержать # , необработанный % , ^ , [, ] , {, } , \ , ", < и > в соответствии с RFC.

30
ответ дан 24 November 2019 в 08:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: