URI ішінен алып тасталған шектегіштерді қалай пайдалануға болады

US_ASCII таңбалар үшін шығарылған бөлгішті қамтитын ұсынуды көрсету арқылы java URL элементін жасау керек. Спецификацияны мына жерден табуға болады: 2.4.3. US-ASCII таңбаларынан шығарылды .

Мысалға,

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

немесе

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

Біреудің шұғыл шешімі бар ма?

0

2 жауаптар

Әдетте URI-ні түпнұсқа URI-ге жинау алдында жеке компоненттерді кодтау арқылы қауіпсіз түрде құрастыруға болады. Бұл жағдайда a% image.gif жол компоненті болып табылады және жол өндірісіне сәйкес кодталуы керек (rfc 2369 ішіндегі 3.3).

Құқықтық 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());

Соңғы мәлімдемені шығарылмаған деп көруге болады.

Техникалық тұрғыдан, екінші 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, көзі
Меншік беті «URL кодтауы интернетте берілуі мүмкін пішімге URL-кодты түрлендіреді» және «x-www-form-urlencoded» MIME түрімен дұрыс URL-кодтауды конфигурациялау сияқты қателіктерге толы деп айтады деп қорқамын .
қосылды автор forty-two, көзі
Бақытымызға орай, бұл нақты бет қателіктер тізімінде жоқ ;-) Кез келген жағдайда, бастар үшін рақмет. Мен осы қателіктердің көпшілігін білмедім, бірақ, бәлкім, осы беттердің көбіне ешқашан кірмегенім болған шығар.
қосылды автор Pieter, көзі
W3Schools үстеліндегі екі кодтау дұрыс: en.wikipedia.org/wiki/Percent-coding
қосылды автор Pieter, көзі