URLのエンコードされた文字はどの文字セットであると想定すべきですか?

StackOverflow https://stackoverflow.com/questions/140549

  •  02-07-2019
  •  | 
  •  

質問

RFC 1738 はURLの構文を指定し、それについて言及しています

  

URLはグラフィックのみで記述されます   
の印刷可能文字   US-ASCIIコード化文字セット。の   オクテット80-FF 16進数は
  US-ASCIIおよびオクテット00-1Fで使用されます   および7F 16進数は
  制御文字;これらは   エンコード。

ただし、これらのオクテットを設定するコードが何を表すかは示しません。

RFC 2396 は状況を改善しようとしているようですが、

>
  

元の文字シーケンスの場合   ASCII以外の文字を含むが、状況はもっと   難しい。目的のオクテットシーケンスを送信するインターネットプロトコル   文字シーケンスが何らかの方法を提供することが期待されていることを表す   使用されている文字セットを識別する(複数ある場合)   [RFC2277]。ただし、現在のところ、   この識別を実現する汎用URI構文。個々のURI   スキームには、単一の文字セットが必要な場合、デフォルトの文字セットを定義する場合、または   使用されている文字セットを示す方法を提供します。

     

URI内の文字エンコーディングの体系的な取り扱いは、   この仕様の将来の変更として開発されました。

クライアントがエンコードされたオクテットを解釈する文字セットを決定できる明確な方法、またはクライアントがエンコードに使用したものをサーバーが決定できる明確な方法はありますか?

ほとんどのサーバーはデフォルトでUTF-8に設定されているようですが、これは指定されたものよりも事実上の選択のようです。

役に立ちましたか?

解決

引用により、URLはASCIIです。それだけです。

URI OTOH、より大きな文字セットを許可します。通常、自分で言ったようにUTF-8です。

覚えておくべきポイントは、URLはURIのサブセットであるということです。したがって、本当の質問は、これらのうちブラウザで書くものはどれですか?

URIを記述できると思いますが、ブラウザはURLに変換するために最善を尽くす必要があります(これはHTTP / 1.1がサポートするAFAICRです)。非ASCII文字の場合、通常はUTF-8をコーディングする16進コードを意味します。

他のヒント

探している仕様は RFC 3987 であり、IRIについて説明しています-国際化リソース識別子。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top