1. ホーム

[解決済み】URLで使用できる文字について

2022-04-07 04:37:04

質問

GETでエンコードされずに使用できる文字の完全なリストをご存知の方はいらっしゃいますか?今のところ、私はA-Z a-z と0-9を使用していますが、完全なリストを知りたいと思っています。

私はまた、中国語、アラビア語のURLの今後の追加のためにリリースされた仕様があるかどうかに興味があります(明らかにそれは私の質問に大きな影響を与えるだろうとして)。

どのように解決するのですか?

EDIT: @Jukka K. Korpela が正しく指摘しているように、RFC 1738 は次のように更新されました。 RFC 3986 . これによって、hostに有効な文字が拡大・明確化されました。残念ながら、簡単にコピー&ペーストできないのですが、がんばります。

最初にマッチした順番に

host        = IP-literal / IPv4address / reg-name

IP-literal  = "[" ( IPv6address / IPvFuture  ) "]"

IPvFuture   = "v" 1*HEXDIG "." 1*( unreserved / sub-delims / ":" )

IPv6address =         6( h16 ":" ) ls32
                  /                       "::" 5( h16 ":" ) ls32
                  / [               h16 ] "::" 4( h16 ":" ) ls32
                  / [ *1( h16 ":" ) h16 ] "::" 3( h16 ":" ) ls32
                  / [ *2( h16 ":" ) h16 ] "::" 2( h16 ":" ) ls32
                  / [ *3( h16 ":" ) h16 ] "::"    h16 ":"   ls32
                  / [ *4( h16 ":" ) h16 ] "::"              ls32
                  / [ *5( h16 ":" ) h16 ] "::"              h16
                  / [ *6( h16 ":" ) h16 ] "::"

ls32        = ( h16 ":" h16 ) / IPv4address
                  ; least-significant 32 bits of address

h16         = 1*4HEXDIG 
               ; 16 bits of address represented in hexadecimal

IPv4address = dec-octet "." dec-octet "." dec-octet "." dec-octet

dec-octet   = DIGIT                 ; 0-9
              / %x31-39 DIGIT         ; 10-99
              / "1" 2DIGIT            ; 100-199
              / "2" %x30-34 DIGIT     ; 200-249
              / "25" %x30-35          ; 250-255

reg-name    = *( unreserved / pct-encoded / sub-delims )

unreserved  = ALPHA / DIGIT / "-" / "." / "_" / "~"     <---This seems like a practical shortcut, most closely resembling original answer

reserved    = gen-delims / sub-delims

gen-delims  = ":" / "/" / "?" / "#" / "[" / "]" / "@"

sub-delims  = "!" / "$" / "&" / "'" / "(" / ")"
              / "*" / "+" / "," / ";" / "="

pct-encoded = "%" HEXDIG HEXDIG

のオリジナル回答 RFC 1738 の仕様があります。

したがって、英数字、特殊文字"のみです。 $-_.+!*'(), および 予約された文字は、その予約された目的のために使用することができます。 は、URL内でエンコードされていません。

1998年以降、廃止されました。