二重エスケープせずに、必要に応じて URL をエスケープするにはどうすればよいですか?
すでにこれを行っている Ruby ライブラリはありますか? WebKit や Chrome はどのようなアルゴリズムを使用しているのだろうか。
2 つの例:
がエスケープされていないため、この URL は無効です
%
:http://x.co/op&k=21%
。URL バーに入力すると、エスケープすることが認識されます。(バックグラウンドで「%」をエスケープしていますよね?)ブラウザーに入力
http://localhost:3000/?s=hello%20world
すると、ブラウザーは再びエスケープしない%20
ことを認識します。
私は、ブラウザーが処理しなければならないエッジ ケースを既に処理している優れたコードを再利用したいと考えています。必要に応じて外部ライブラリを呼び出してもかまいません。
更新: はい、私はURI.parseについて知っています。構文を表示する必要はありません。私の質問はそれより難しいです。