URI'de hariç tutulan sınırlayıcılar nasıl kullanılır?

US_ASCII Karakterleri için hariç tutulan bir sınırlayıcı içeren bir temsil sağlayarak bir java URL nesnesi oluşturmam gerekiyor. Buradaki heceleme burada bulabilirsiniz 2.4.3. Dışlanan ABD-ASCII Karakterleri .

Örneğin,

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

veya

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

Bir geçici çözüm bilen var mı?

0

2 cevap

Genel olarak, bir URI, sadece tek tek bileşenlerin nihai URI'ye birleştirilmeden önce kodlanmasıyla güvenli bir şekilde yapılabilir. Bu durumda % image.gif bir yol bileşenidir ve yol üretimine göre kodlanmalıdır (rfc 2369'da 3.3).

Yasal URI (ve URL'ler) oluşturmak için java.net.URI 'ı kullanın:

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

Son ifadenin kodlanmamış olduğunu görmelisiniz.

Teknik olarak, ikinci URL yasa dışı değildir, image.gif , bir parça olarak ele alınacaktır. Fakat karma kargaşa yolun bir parçasıysa, tabii ki de kodlanmalıdır.

1
katma

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

1
katma
Lütfen W3Schools'a başvurmayın. Hatalar ve yanıltıcı önerilerle doludur. w3fools.com sayfasına bakın.
katma yazar forty-two, kaynak
Korkarım ki bu particalar sayfası, "URL kodlaması, karakterleri Internet üzerinden iletilebilen bir biçime dönüştürüyor" gibi saçma sapan ifadelerle doludur ve uygulama/x-www-form-urlencoded MIME türü ile uygun URL kodlamasını gizlemek gibi hatalarla doludur .
katma yazar forty-two, kaynak
Eh, neyse ki bu sayfa hata listesinde değildi ;-) Her durumda, baş için teşekkürler. Bu hataların çoğunun farkında değildim, ancak muhtemelen bu sayfaların çoğunu hiç ziyaret etmemiştim.
katma yazar Pieter, kaynak
Eh, daha iyi bir referans muhtemelen wikipedia, ama neyse ki W3Schools üzerindeki tablodaki iki kodlama doğrudur :-) en.wikipedia.org/wiki/Percent-encoding
katma yazar Pieter, kaynak