1

URLで使用する場合、許可されていない文字、たとえばスペース:

<a href="pa ge.php">link</a>

このリンクをクリックすると、ブラウザのアドレスバーに表示されますmysite.com/pa%20ge

さて、今なら私はジョージアン(または例えばロシア)のアルファベット記号を使用します:

<a href="აბცდ.php">link</a>

ブラウザのアドレスバーに表示されますmysite/აბცდ.php

つまり、これらの非ラテンアルファベット記号は変更されず、元のビューとしてURL「表示」されます。

質問:なぜですか?非ラテンアルファベット記号もURLで許可されていますか?

4

2 に答える 2

2

いいえ、URLにはASCII(のサブセット)のみを含めることができます。

ブラウザは、「აბცდ」を、サーバーに送信される実際のURLのパーセンテージエンコードされたエンティティに変換しています。実際、最初はパーセンテージエンコードされた文字列としてドキュメントに埋め込む必要があります。ブラウザはその間違いをカバーしているだけです。

ブラウザがアドレスバーに表示する内容は異なります。最新のブラウザは、可能な限りユーザーフレンドリーになり、パーセンテージでエンコードされた文字をデコードして、アドレスバーに人間が読めるテキストとして表示しようとします。なりすまし防止の理由から、すべてではなく一部のみがデコードされます。グルジア語は、他の似たようなキャラクターと間違えにくいため、たまたまかなり安全です。

于 2012-11-24T09:53:00.227 に答える
1

これらの文字も内部でパーセントエンコードされていますが、ブラウザはユーザーへの礼儀として元の形式で表示します。URLをコピーして貼り付けると、パーセントエンコードが適切に行われていることがわかります。

http://domain.com/mysite.აბცდ.php

になります

http://domain.com/mysite.%E1%83%90%E1%83%91%E1%83%AA%E1%83%93.php

背景情報については、この回答を参照してください。

于 2012-11-24T09:52:19.117 に答える