RFC 3986 は、URI のホスト コンポーネントが「大文字と小文字を区別しない」ことを指定しています。ただし、UCS または UTF-8 文字に関して「大文字と小文字を区別しない」が何を意味するかは指定されていません。
RFC に示されている例 (例: " <HTTP://www.EXAMPLE.com/
> is equal to <http://www.example.com/
>") から、「大文字と小文字を区別しない」ということは、少なくとも文字 A ~ Z が UTF-8 文字セットの文字 32 の前にある文字と同等であると見なされることを意味すると推測できます。つまり、 AZ。ただし、この範囲外の文字をどのように扱うべきかについては言及されていません。したがって、www.OLÉ.comというエンコードも正規化もされていない登録名が与えられた場合、RFC で許容される正規化の 3 つの形式が考えられます。
- 小文字でwww.olé.comに変換し、パーセント エンコードして www.ol%E9.com に変換します
- www.olÉ.comには A ~ Z 文字のみを小文字にしてから、www.ol%C9.com にパーセント エンコードします。
- パーセントで www.OL%C9.com にエンコードしてから、パーセントでエンコードされていない部分を小文字で www.ol%C9.com にすると、2 と同じ結果になります。
質問は次のとおりです。どちらが正しいですか。ケース 1 の場合、どの文字が大文字と見なされ、どの文字が小文字と見なされるか (また、どの文字に大文字と小文字がないか) を定義するものは何ですか?