30545
**urlでギリシア文字を指定可能ですか？**  
・仕様は、RFC 3986 ？

**アルファベット小文字とは、ラテン小文字のこと？**  
・ギリシア文字は含まれない？

**リンク先に下記記述があるのですが、これはエンコード前の話ですか？**  
・それともurlだからエンコードは関係ない？  
・[2003年にはアラビア語やキリル文字、ギリシア文字、そして漢字が使えるようになった](https://eset-info.canon-
its.jp/malware_info/special/detail/151001.html)
CC BY-SA 3.0
2016-11-19T13:12:47.507
30540
2018-01-30T16:59:52.117
2016-11-19T19:26:17.030
3974
7886
question
http url
urlでギリシア文字を指定可能ですか？ 例えば「index-α.html」「index-β.html」など
URLとURI([RFC 3986](https://www.rfc-
editor.org/rfc/rfc3986))は別物です。ただURLはURIの一種(subset)ですので、その仕様に従います(RFC 3986
§1.1.3)。  
URIで使える文字はreservedとunreservedに分けられ、それらは以下のように定義されていて、reservedは文字列の区切りなどとして使われることが想定されています(RFC
3986 §2.2-3)。

```

    reserved    = gen-delims / sub-delims
    gen-delims  = ":" / "/" / "?" / "#" / "[" / "]" / "@"
    sub-delims  = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "="
    ...
    unreserved  = ALPHA / DIGIT / "-" / "." / "_" / "~"
    ...
    ALPHA       = %41-%5A / %61-%7A = "A"-"Z" / "a"-"z" 
    DIGIT       = %30-%39           = "0"-"9" 
    
```

なのでギリシャ文字を直接書くことはできません、パーセントエンコーディングを使う必要があります。変換順序としては[RFC
3629](https://www.rfc-
editor.org/rfc/rfc3629)にそってUTF-8オクテットに変換されたのち、上記unreservedの文字を除いて1バイトごとに16進数で表し`%`を前につけます。  
`index-α.html`の場合、αはUTF-8では`0xCE
0xB1`なので`index-%CE%B1.html`となります<http://example.com/index-%CE%B1.html>(ブラウザによってはαとして表示してくれたりしますが)。

[リンクされた記事](https://eset-info.canon-
its.jp/malware_info/special/detail/151001.html)が話しているのはドメイン名(IPアドレスに解決する必要がある)の話で、これはURLとは別のレベルです。ドメイン名も元はASCII文字のみでしたがpunycode([RCF
3492](https://www.rfc-editor.org/rfc/rfc3492))によってUnicodeの **一部**
を含めれるようになりました。ブラウザでは漢字などに見えますが実態は`xn--`で始まるただのASCII文字列です。

以下のURLは両方`http://日本語.jp/`をさしますが、上はドメイン名をpunycode encode、下はpercent
encodeしてあります。パーセントエンコードした方はブラウザが1度UTF-8にしたのちpunycodeにしてサーバーに送っています。

<http://xn--wgv71a119e.jp/>  
<http://%E6%97%A5%E6%9C%AC%E8%AA%9E.jp/>
CC BY-SA 3.0
2016-11-19T19:01:09.847
30545
2018-01-30T16:59:52.117
2021-10-07T07:34:52.683
-1
3974
30540
answer
> **urlでギリシア文字を指定可能ですか？**  
>  ・仕様は、RFC 3986 ？

[HTML](https://www.w3.org/TR/html51/references.html#biblio-
url)での話なら指定可能です。仕様は、[RFC 3987](https://www.rfc-editor.org/rfc/rfc3987)です。

```

       iunreserved    = ALPHA / DIGIT / "-" / "." / "_" / "~" / ucschar
    
       ucschar        = %xA0-D7FF / %xF900-FDCF / %xFDF0-FFEF
                      / %x10000-1FFFD / %x20000-2FFFD / %x30000-3FFFD
                      / %x40000-4FFFD / %x50000-5FFFD / %x60000-6FFFD
                      / %x70000-7FFFD / %x80000-8FFFD / %x90000-9FFFD
                      / %xA0000-AFFFD / %xB0000-BFFFD / %xC0000-CFFFD
                      / %xD0000-DFFFD / %xE1000-EFFFD
    
```

[HTTP](https://www.rfc-editor.org/rfc/rfc7540)での話ならまだRFC
3986参照になっているようで、指定不可能です。（このままなのかも？）

なので、Webクライアントは、パス部分を（ページのエンコーディングに関わらず）UTF-8に変換後にパーセントエンコーディングしてWebサーバーに送信しています。

  * [An Introduction to Multilingual Web Addresses](https://www.w3.org/International/articles/idn-and-iri/)

    * [Resolving a path](https://www.w3.org/International/articles/idn-and-iri/#iritechnical)

    * [I18N Tests: Resource identifiers 3](https://www.w3.org/International/tests/test-incubator/oldtests/sec-iri-3)
```           <a href="/International/articles/idn-and-
iri/JP納豆/引き割り納豆.html">

        
```

  * [URL Standard](https://url.spec.whatwg.org/)

    * [URL parsing > path state](https://url.spec.whatwg.org/#path-state "URL Standard")
CC BY-SA 3.0
2016-11-20T07:08:44.437
30549
2016-11-20T07:16:22.553
2021-10-07T07:34:52.683
-1
7291
30540
answer