私はフラグメント識別子を使用して、この男に似たWebアプリでAJAXイベントのパーマリンクを作成しています。何かのようなもの:
http://www.myapp.com/calendar#filter:year/2010/month/5
かなりの検索を行いましたが、フラグメントidenitiferの有効な文字のリストが見つかりません。W3C仕様は何を提供していません。
一般的にURLと同じように文字をエンコードする必要がありますか?
これに関する良い情報はどこにもないようです。
回答:
RFC3986を参照してください。
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]、-、.、_、~、:、@、/、および?
%エスケープ文字としてのみ許可されています。%25単一のをエンコードするために使用し%ます。
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に記載の方法。
VERTICAL BAR (|)、GRAVE ACCENT (`)そしてSPACE ( )リストに載っていないようです。そうではないリストで印刷可能(7ビット)US-ASCII文字の完全なリストは、次のとおりです。"#%< >[\]^`{|}