Java URLEncoder je uslužna klasa koja se koristi za kodiranje URL-ova (Uniform Resource Locator). Pouzdanost i sigurnost osigurani su kodiranjem URL-a. Kada korisnik zatraži određenu stranicu putem metode get, parametri obrasca i njihove vrijednosti dodaju se nakon '?' prijavite se na URL. Međutim, problem nastaje kada se u vrijednostima koje se ne interpretiraju koriste posebni znakovi. Općenito, HTML automatski obrađuje dio kodiranja obrađujući posebne znakove i pretvarajući ih u znakove koji su dopušteni za glatko rukovanje svim operacijama. Međutim, to ne potvrđuje točno kodiranje stoga se ne možemo osloniti samo na HTML značajke, pa stoga za eksplicitno kodiranje URL-ova koristimo klasu URL Encoder u Javi.
Prilikom kodiranja niza važno je slijediti navedena pravila:
- Abecedni znakovi od 'a' do 'z' ili od 'A' do 'Z' i znamenke od '0' do '9' ostaju iste.
- Alfanumerički znakovi i neki posebni znakovi kao što su '*', '_', '-' i '.' nemoj mijenjati.
- Svi razmaci se pretvaraju u znakove '+'.
- W3C preporučuje korištenje 'UTF-8' za potrebe kodiranja. Svi ostali znakovi kodirani su jednim ili više bajtova pomoću navedene sheme kodiranja. Pretvaraju se u niz od tri znaka u obliku %xy, gdje xy predstavlja heksadecimalni prikaz znaka za kodiranje.
Primjer 1:
Ako je korisnički zahtjev takav da vrijednost parametra sadrži posebne znakove i razmake kao
novi redak python
u@Java T točka
Ako je korišteno kodiranje UTF-8 koje se najčešće koristi, znak '@' pretvorit će se u '%40', a razmaci će se pretvoriti u znakove '+'. Kodirani niz izgleda ovako:
u%40Java+T+Point
Primjer 2:
Ako je korisnički zahtjev takav da vrijednost parametra ne sadrži posebne znakove i razmake kao
sortirana tuple python
u@JavaTpoint
Kodirani niz izgleda ovako:
u%40JavaTPoint
java do while petlja
Kodiranje URL-a
Za kodiranje URL-a Java klasa URLEncoder nudi metodu encode().
URLEncoder.encode()
Metoda prevodi niz u format kodiran application/x-www-form-url koristeći specifičnu shemu kodiranja. Dobiva bajtove za nesigurne znakove pomoću isporučene sheme kodiranja.
Sintaksa:
public static String encode(String s, String enc) throws UnsupportedEncodingException
Napomena: World Wide Web Consortium preporučuje korištenje UTF-8 sheme kodiranja. Inače, uzrokuje razne nekompatibilnosti.
Parametri:
s: Niz koji treba prevesti.
imenik u linux naredbama
enc: Naziv podržanog kodiranja znakova kao što je 'UTF-8'.
Povratak: Vraća prevedeni niz.
Bacanja: UnsupportedEncodingException javlja se kada imenovana shema kodiranja nije podržana.
UrlEncoder.java
import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URL; import java.net.URLEncoder; public class UrlEncoder { public static void main(String[] args) throws MalformedURLException, UnsupportedEncodingException { String baseUrl = 'https://www.javatpoint.com/'; // String to be encoded as requested by the user String query = ' u@ java T point'; System.out.println(' URL without any encoding : ') ; // creating an object of the URL class URL url = new URL(baseUrl + query) ; System.out.println( url ) ; // using the encode( ) method to encode the URL System.out.println( ' URL after encoding : ' ) ; url = new URL( baseUrl + URLEncoder.encode( query, 'UTF-8' ) ) ; System.out.println( url ) ; } }
Izlaz:
URL without any encoding: https://www.javatpoint.com/ u@ java T point URL after encoding: https://www.javatpoint.com/+u%40+java+T+point