#?SuikaWiki/0.9 [1] [[RFC1738]], [[RFC1808]] では: - unreserved = alpha | digit | safe | extra - safe = "$" | "-" | "_" | "." | "+" - extra = "!" | "*" | "'" | "(" | ")" | "," 結局、 - [CODE(ABNF)[rfc1738.unreserved = <[A-Za-z0-9$_.+!*'(),-]>]] - rfc1808.unreserved = rfc1738.unreserved 一方、 [[RFC2396]] では - [CODE(ABNF)[rfc2396.unreserved = <[A-Za-z0-9_.!~*'()-]>]] で、 [CODE(URI)[[[$]]]], [CODE(URI)[[[+]]]], [CODE(URI)[[[,]]]] が消えて、 [CODE(URI)[[[~]]]] が追加されました。 削除されたものは [[reserved]] へ移動、追加されたものは [[national]] からの編入です。 [[#comment]] * 仕様書から ** RFC 2396 *** 2.3. Unreserved Characters >Data characters that are allowed in a URI but do not have a reserved purpose are called unreserved. These include upper and lower case letters, decimal digits, and a limited set of punctuation marks and symbols. URI で認められているが[[予約]]目的を持たないデータ文字を[DFN[[[非予約]]]]と呼びます。 これには大文字と小文字, 10進数字, 嗅ぎられた句読点印・記号の集合を含みます。 > - unreserved = alphanum | mark - mark = "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")" >Unreserved characters can be escaped without changing the semantics of the URI, but this should not be done unless the URI is being used in a context that does not allow the unescaped character to appear. 非予約文字は URI の意味を変えることなく [[escape]] することが出来ますが、 このことは URI がその非予約文字の出現が許されない文脈で使われるのでない限りするべきではありません。 *** G.2 (抜粋) >The tilde "~" character was added to those in the "unreserved" set, since it is extensively used on the Internet in spite of the difficulty to transcribe it with some keyboards. [[チルダ]] [CODE(URI)[[[~]]]] 文字を「非予約」集合に加えました。 この文字は転写し辛い鍵盤があるにもかかわらずインターネットで広く用いられているからです。 *RFC の部分の License [[RFCのライセンス]] *メモ - [2] [CODE(URI)[~]] が追加されたのは、 のような使用が非常に広く行われており、追認せざるを得なかったからです。本来はこの文字は national に分類されていたように存在しない[[符号化文字集合]]が多い (その最たる例は日本の[[シフトJIS]]。厳密にはシフト JIS で生チルダを含む URI は書けません。) ですし、容易に入力できない鍵盤・入力方式も少なくありませ。 (日本では [[WWW]] の普及後雑誌や[[掲示板]]などで [CODE(char)[~]] の入力方法についての記事や質問が激増しました。)