URIで除外された区切り文字を使用する方法

私はUS_ASCII文字のために除外される区切り文字を含む表現を提供することによってJava URLオブジェクトを作成する必要があります。ここでは、speicificationを見つけることができます。 2.4.3。除外されたUS-ASCII文字を返します。

例えば、

http:// localhost:8182/a%image.tif

または

http:// localhost:8182/a#image.tif

誰かが回避策を知っていますか?

0

2 答え

通常、個々のコンポーネントを最終的なURIに組み立てる前にエンコードするだけで、URIを安全に構築できます。この場合、 a%image.gif はパスコンポーネントであり、パスプロダクション(3.3のrfc 2369)に従ってエンコードする必要があります。

有効なURI(およびURL)を作成するには、 java.net.URI を使用します。

    URI uri = URI.create("http://localhost:8182/a%25image.gif");
    System.out.println(uri.toASCIIString());
    System.out.println(uri.getPath());

エンコードされていない最後のステートメントの出力が表示されます。

技術的には、2番目のURLは不正ではありませんが、 image.gif はフラグメントとして扱われます。しかし、ハッシュ・カバラクタがパスの一部であれば、それはもちろんコード化されなければならない。

1
追加された

Can't you encode the character? So # => %23 and % => %25. See more information on W3Schools

1
追加された
W3Schoolsを参照しないでください。エラーや誤解を招くようなアドバイスがたくさんあります。 w3fools.com を参照してください。
追加された 著者 forty-two,
私はparticalarページが "URLエンコーディングはインターネット上で送信できるフォーマットに文字を変換する"とアプリケーション/ x-www-form-urlencoded MIMEタイプで適切なURLエンコーディングをconfuisngするなどのナンセンスのステートメントでいっぱいです。
追加された 著者 forty-two,
さて、幸いにも、この特定のページはエラーのリストにはありませんでした;-)いずれにしても、ヘッドアップのおかげです。私はこれらのエラーのほとんどを認識していませんでしたが、おそらく私はこれらのページのほとんどを訪れたことがないためです。
追加された 著者 Pieter,
さて、より良いリファレンスはおそらくウィキペディアですが、幸いにもW3Schoolの表の2つのエンコーディングは正しいです:-) en.wikipedia.org/wiki/Percent-encoding
追加された 著者 Pieter,